用C++BUILDER建立自己的WEB浏览器
杨超
---- 用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节,因为它是基于c++的.如果直接使用API(如ISAPI)建立INTERNET应用,你选用的工具必须能使用并建立DLL,而且能利用这些DLL公布的接口. ---- 让我们看一下它的INTERNET组件及功能: --------------------------------------------------------- FTP 支持远程机器间交换文件 THTML 支持分析和规划html数据并提供一个 当前html页的可滚动视图 THTTP 提供访问超级文本传输协议 TNTTP 提供读取新闻组的能力 TPOP 提供访问pop3电子邮件协议 TSMTP 支持传送Internet邮件报文组给SMTP服务器 TTCP 提供访问winsock传送控制协议(客户和服务器端) TUDP 提供访问winsock用户数据图协议(客户端和服务器端) ---- 现在我们就可以开始建立我们的浏览器了: 1.先建立一个新的工程文件 创建一个新表单,设它的Caption属性为mybrowse,Position的属性为 PoScreeCenter将一个TTabControl组件放在表单顶部,这个控制在你浏览中列出的URL使你很容易返回到你已经访问过的节点,设置Align的属性为alTop,这样以使程序运行时它总处于表单的顶端,再放置一个Tpanel并设置Align属性为alBottom,使它运行时处于底端, 在对象观察器中删除Caption属性,并设TabOder为0.再向表单中加入另一 Tpanel,清除其Caption属性,并放置两个TBitBtn,Caption分别设置为GO和HOME,在表单的底部放置一个TcomBoBox并删除他的Text属性,程序运行时,你将在它里面键入或下拉选择你要访问的URL ..最后在表单上放置一个THml组件,这将显示你访问的网页.下面就可以编写代码了. 2. (1).为TabControl的OnChange事件( 使cbURL与tcURL同步)编写代码: cbURL- >Text=tcURL- >Tabs->Strings[tcURL- >TabIndex]; cbURL- >SelectAll( ); bbGo- >Click( ); //使点击go与点表格相同效果 (2).为THtml的OnbeginRetrieve事件编写代码: Cursor=(TCursor)crHourGlass; if (cbURL- >Items- >indexOf(htBrowser- >URL)==-1) { cbURL- >Items- >Add(htBrowser- >URL); //检查TComboBox保持的URL是否 cbURL- >Text=htBrowser- >URL; //包含要浏览的地址 < file://包含要浏览的地址 > ,如没有则 cbURL- >SelectALL( ); //将其加入到TComboBox和 tcURL- >Tabs- >Add(htBrowser->URL); //TTabControl中 tcURL- >TabIndex=tcURL- >Tabs- >Count-1; bbGo- >Click( ); } 为THTML的OnEndRetrieve实践编写代码; Cursor=(TCursor)crDefault; 3.为go按钮的OnClick事件编写代码: htBrowser- >equestDoc(cbURL- >est) //打开任何在 < file://打开任何在 > TComboBox中指定的URL(cbUCL) 4.为按钮home的OnClick编写事件 htBrowser- >equestDoc- >(HomePage) // HomePage 为常数,须在程序首定义,如 // String HomePage="http://www.sohoo.com" ---- 现在你就编好了你自己的浏览器.快!试一试吧!