delphi做简单浏览器,注意删除和添加收藏夹。【C/S程序设计】

 

C/S程序设计

实验05

实验目的

熟悉和掌握菜单栏和工具栏。

实训内容

运行演示菜单栏和工具栏综合实例Example3.24PPTJX-CS程序设计(附一:常用组件补充)-6.ppt的第25)。

新建一个名称为project1的项目,完成如下功能。

新建一个名称为mainForm的窗体,如图1所示:

1-mainForm窗体示意图

主要各项属性如下:

组件类型

组件名

属性名

设置值

窗体(Form

mainForm

Caption

我的浏览器

工具栏(ToolBar

Toolbar1

内含6Button1Seperator ,具体文字和图标参见图1

菜单栏(MainMenu

MainMenu1

菜单结构、热键和快捷键如下:

 

浏览器(WebBrowser

WebBrowser1

 

 

图片列表(ImageList

ImageList1

加载icon目录下的所有图标

点击工具栏按钮的[下载][IT][汽车][音乐],则将webBrowser1分别导航至:http://download.it168.comhttp://it.163.comhttp://auto.163.comhttp://music.163.com

进入上述网址后,可点击[添加收藏]将网址收藏到主菜单的[收藏栏]下,也可点击[删除收藏]将网址从主菜单的[收藏栏]下删除,例如:

                   i.    点击了[IT] 按钮出现界面如图2所示:

                   ii.    此时可点击[添加收藏]按钮将该网址收藏到[收藏栏]下,如图3所示:

                  iii.   然后也可点击[删除收藏]按钮将该网址从[收藏栏]下删除。

 

提示:

WebBrowser组件在Internet面板下。

[收藏栏]的动态添加需要使用TMenuItemcreateAdd方法,参考代码如下:

var tempItem:TMenuItem;

begin

     tempItem:=TMenuItem.Create(MainMenu1);

     tempItem.Caption:=website;

     MainMenu1.Items[1].Add(tempItem);

end;

[收藏栏]的动态删除需要使用TMenuItemdelete方法,具体请参考帮助文件。

 

 

 设计思路为:

可以重复添加到收藏夹,但是若把一个地址删除,则所有相同的地址都会被删除.....

总共经历了3次迭代

 

 

  {第一次迭代:

     此方法有个BUG ,收藏第一个,在收藏第二个,

     然后返回收藏第一个(即第一个收藏2遍),

     删除的时候会发现爆出数组越界错误,所以注释掉了

     当然如果你不做这么离谱的收藏操作,就不会出错。 }

 

procedure TmainForm.ToolButton2Click(Sender: TObject);

var

 n,i,j:integer;

 

begin

      n:=N6.count;

       for i:=0 to n-1 do

       begin

 

      if N6.Items[i].Caption= URLs then

      begin

       if i>=0 then

        N6.Delete(i);

      end;

end;      

 

 

      {第二次迭代:

         下列算法没报错,但是执行效率不高,不能删除重复收藏的地址,

         原因是 Find(URLs)返回的是第一次出现URLs的子菜单索引,

         找到后就不会继续寻找,所以只能一个个删除} 

procedure TmainForm.ToolButton2Click(Sender: TObject);

var

 n,i,j:integer;

 

begin

     i:=N6.IndexOf(N6.Find(URLs));

      showmessage(inttostr(i));

     if i>=0 then

     N6.Delete(i);      

end;

 

 

 {这是第三次迭代,无BUG,一次能删除重复收藏的地址,}

 

procedure TmainForm.ToolButton2Click(Sender: TObject);

var

 n,i,j:integer;

 

begin

      n:=N6.count;

     for i:=0 to n-1 do

     begin

     j:=N6.IndexOf(N6.Find(URLs));

     if j>=0 then

     N6.Delete(j);

     end ;

 

end;

 


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值