用 C++Builder 建立自己的 Web 浏览器

原创 2001年09月24日 17:34:00

 

---- 用够了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) //打开任何在 < > TComboBox中指定的URL //(cbUCL)

---- 4.为按钮home的OnClick编写事件

htBrowser- >equestDoc- >(HomePage) // HomePage 为常数,须在程序首定义,如
// String HomePage="http://www.sohoo.com" ]

---- 现在你就编好了你自己的浏览器.快!试一试吧!

-=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-
             //
  __________/LB/___   OUTINN
 /  _[]_   /____/  /
/_________/| () |/__/ http://outinn.yeah.net/
 |  ____ /-| __ |-/|  Welcome to visit OUTINN!
 |__|==|___| || |__|
 -=--=--=- |_||_| =-  Fancy, outinn@china.com

在C++ Builder中打开浏览器加载页面

今天在开发项目的时候,要求实现根据数据查询出来的一个IP地址,并返回到前台使用浏览器打开。这个东东本身很简单哈。在C++ Builder 中有对应的API函数,下面我们一起来讲讲: 调用外部命令...
  • sevenkj
  • sevenkj
  • 2014年10月29日 09:59
  • 1173

MFC控件Microsoft Web Browser简单浏览器实现

环境:VS2013 新建工程:基于对话框 ①在对话框添加控件Microsoft Web Browser(说明:VS2013上控件的名字是Microsoft Web Browser,其它的编...
  • CSDN3436
  • CSDN3436
  • 2014年12月10日 19:00
  • 1200

C++Builder建立及调用DLL

C++Builder建立及调用DLL DLL简称动态链接库,是Windows中程序的重要组成部分。想象一下,一个程序需要多人共同完成开发,怎么个共同法?这时我们就要考虑把程 序分为好几个模块,团队...
  • qq_36096752
  • qq_36096752
  • 2016年11月28日 15:37
  • 1377

在C++ Builder中用socket api来写网络通讯程序(同时支持TCP和UDP协议)

在7月4日看完sockcomp.pas后,我决定用socket api来写一个客户端和服务器并且同时支持TCP,UDP协议,于是我就去做,现将代码贴出来(已调试通过) Socket api Clie...
  • enjoy0104
  • enjoy0104
  • 2015年04月21日 01:05
  • 1081

JavaWeb - 浏览器与服务器交互的过程

浏览器与服务器交互的过程 当我们打开浏览器,在浏览器的地址栏中输入URL地址”http://www.gacl.cn:8080/JavaWebDemo1/1.jsp“去访问服务器上的1.jsp...
  • wuya_meiya
  • wuya_meiya
  • 2016年04月04日 10:46
  • 3249

创建SQL数据库并与C++Builder连接

创建数据库并与C++Builder连接的过程分为三个步骤。一是建立数据库表,二是建立ODBC数据源,三是数据库与C++Builder连接。 一. 创建数据库表      使用工具是SQL ...
  • CYT0603
  • CYT0603
  • 2016年06月13日 18:57
  • 1713

C++ 二叉树实现词频分析

通过二叉树存单词,并且对总共的单词数量进行计数,二叉树自适应的将出现频率高的单词往上移动以减少二叉树的搜索时间。 代码如下/***********************genSplay.h****...
  • u012630961
  • u012630961
  • 2017年11月22日 10:28
  • 51

C++Builder及VC的DLL相互调用示例

C++Builder及VC的DLL相互调用示例 由于MS和Borland(CodeGear)两家的编辑器实现细节不同,造成了它们生成的DLL不能相互通用,因此给实际带来了很多的麻烦。下面来说一说如何...
  • shufac
  • shufac
  • 2016年12月21日 08:46
  • 1429

浅析web服务器与浏览器的实现原理

我们基本每天都在通过WEB浏览器,去浏览一些新闻,看看视频之类的。 众所周知,这就是所谓的B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览...
  • changhenshui1990
  • changhenshui1990
  • 2017年04月11日 14:19
  • 1719

web浏览器兼容问题

wb 兼容
  • joshinrai
  • joshinrai
  • 2017年06月20日 09:49
  • 356
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用 C++Builder 建立自己的 Web 浏览器
举报原因:
原因补充:

(最多只允许输入30个字)