`
兜兜没有糖
  • 浏览: 7612 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

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.com http://it.163.comhttp://auto.163.com http://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;

 


 

0
1
分享到:
评论

相关推荐

    Delphi 7 新概念百例

    很多实例的重要部分都做了特别注意和技巧等提示,目的是强调一些技巧的使用或使读者尽量避免一些常见的错误,以使更高效地利用Delphi这个强大的程序开发工具。 该书精选了100多个经典的实例从易到难、由浅入深、由...

    DelphiWebMVC.zip_delphi mvc_delphi mvc‘_delphiwebmvc_框架_web

    favicon.ico是一个网站的图标,通常显示在浏览器的地址栏或收藏夹中,为用户识别网站提供视觉标识。 DelphiMVC.identcache和DelphiMVC.dproj.local是Delphi的缓存和本地项目配置文件,它们存储了项目在开发环境中的...

    APIBible 超级API函数浏览器 VB学习工具

    6. **收藏和笔记**:用户可以将常用的或重要的API函数添加到收藏夹,或者对函数添加个人笔记,方便日后查阅。 7. **更新维护**:随着新API的发布,APIBible会不断更新和完善,确保开发者能够获取最新的API信息。 8...

    网页文件拖放器 Delphi 源码

    【网页文件拖放器 Delphi 源码】是一个基于Delphi编程语言开发的应用...同时,"整理收藏夹"功能的实现,也展示了如何在应用程序中实现基本的文件管理和用户交互设计,这对于开发更加完善的应用程序是必不可少的知识。

    IP地址快速设置工具-源码

    总结来说,这是一个使用Delphi 7编写的,专为快速设置IP地址的工具,具有内置IP列表、ping功能和收藏夹功能。源代码的开放使得用户可以根据自己的需求进行修改和扩展。通过分析提供的文件,我们可以了解到软件的基本...

    IntraWebFlexigridDemoV2ByC5soft.rar

    9. **FAVICON.ICO**:这是网站的图标,通常显示在浏览器的地址栏和收藏夹中,提高网站的识别度。TestFAVICON.ICO可能是该示例应用的自定义favicon。 这个压缩包为Delphi开发者提供了一个学习IntraWeb和Flexigrid...

    InfoBase 资料管理库

    这是2003年得一个作品,陆续做了基本得功能,当初做这个只是一时性起,帮朋友讲解树型得数据结构,并写了个简单得例子,但后来还是作成一个软件。该程序功能已经实现,并且可以正常使用,但是‘最爱’收藏夹还有一些...

    [OCX]下拉菜单控件

    在"MenuListCon.ocx"中,模拟浏览器收藏夹的标签式设计可能意味着控件具有多层结构,用户可以通过展开和折叠来查看和选择不同层级的菜单项。 这种控件的实现涉及到事件处理、数据绑定和状态管理等技术。开发者可以...

    vc++ 应用源码包_5

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_1

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_2

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_6

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 应用源码包_3

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    vc++ 开发实例源码包

    该实例可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

    BookmarkBank-开源

    2. **Web服务架构**:BookmarkBank 采用Web服务架构,这意味着它可以跨平台运行,用户可以通过浏览器进行访问,无论身处何处,只要有网络连接,就能管理自己的书签和收藏夹。 3. **书签管理**:该系统提供了全面的...

Global site tag (gtag.js) - Google Analytics