Delphi实例之一个简易的浏览器的实现

Delphi7的WebBrowser组件提供了很多不错的网页设计的功能,下面做一个简单的浏览器。组件很简单按照下面摆放就行了。

这是运行后的效果

源代码

主页面

 unit Unit1;

 interface

 uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, OleCtrls, SHDocVw,
ImgList, ToolWin; type
TForm1 = class(TForm)
ToolBar1: TToolBar;
StatusBar1: TStatusBar;
ImageList1: TImageList;
WebBrowser1: TWebBrowser;
Panel1: TPanel;
BackButton: TToolButton;
ForwardButton: TToolButton;
ToolButton3: TToolButton;
RefreshButton: TToolButton;
Stopbutton: TToolButton;
HomeButton: TToolButton;
Label1: TLabel;
Edit1: TEdit;
GotoButton: TBitBtn;
procedure GotoButtonClick(Sender: TObject);
procedure WebBrowser1DownloadBegin(Sender: TObject);
procedure WebBrowser1DownloadComplete(Sender: TObject);
procedure BackButtonClick(Sender: TObject);
procedure ForwardButtonClick(Sender: TObject);
procedure StopbuttonClick(Sender: TObject);
procedure RefreshButtonClick(Sender: TObject);
procedure HomeButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.GotoButtonClick(Sender: TObject);
begin
WebBrowser1.Navigate(Edit1.Text); {连接到指定地址}
end; procedure TForm1.WebBrowser1DownloadBegin(Sender: TObject);
begin
Form1.Caption:=Form1.Caption+' '+Edit1.Text+'……';
StatusBar1.SimpleText:='正在连接地址: '+Edit1.Text; {状态栏显示正在连接的地址}
end; procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
Form1.Caption:=Form1.Caption+' '+WebBrowser1.LocationURL;
StatusBar1.SimpleText:='完成' +WebBrowser1.LocationURL;{连接完成}
end; procedure TForm1.BackButtonClick(Sender: TObject);
begin
try
WebBrowser1.GoBack; {返回}
except
ShowMessage('已经达到最早历史记录');
exit;
end;
end; procedure TForm1.ForwardButtonClick(Sender: TObject);
begin
try
WebBrowser1.GoForward; {前进}
except
ShowMessage('已经达到最新历史记录');
exit;
end;
end; procedure TForm1.StopbuttonClick(Sender: TObject);
begin
WebBrowser1.Stop; {停止}
end; procedure TForm1.RefreshButtonClick(Sender: TObject);
begin
WebBrowser1.Refresh; {刷新}
end; procedure TForm1.HomeButtonClick(Sender: TObject);
begin
WebBrowser1.GoHome;
Edit1.Text:='http://www.cnblogs.com/Chaobs'; {主页}
end; end.

很简单吧!

Delphi的WebBrowser实际上是调用了mshtml.dll里的函数,而mshtml.dll就是所谓的IE内核Triend,换句话说,这个浏览器和当前电脑上的IE浏览器公用同一内核。

鉴于国内大部分用户电脑上装的都是IE8、9,个人认为下载一个IE11(IE11的速度绝对比得上Chrome),然后提出mshtml.dll,放到文件夹下,这样就能够有更好的打开速度。

Delphi实例之一个简易的浏览器的实现的更多相关文章

  1. Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)

    前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...

  2. (转载)delphi实例TDBGrid用右键菜单复制行粘贴行

    delphi实例TDBGrid用右键菜单复制行粘贴行 这个从本质上来说就是DBGrid后台数据库的插入 右键复制当前行的相关数据到临时变量点粘贴时,覆盖数据或插入数据! db为数据库: 字段名id,n ...

  3. 【转】Delphi内嵌ASM简易教程

    Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...

  4. Delphi实例之橡皮筋画图的实现

    Delphi实例之橡皮筋画图的实现 在<Delphi7基础教程>这本书的练习中提到过一个橡皮筋画图的例子,书上的源码是错误的!不知道是打印的错误还是本身源码就有问题,我将它改了过来. 在F ...

  5. Delphi实例之绘制正弦函数图像

    Delphi实例之绘制正弦函数图像 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphic ...

  6. python实例编写(1)--浏览器操作,元素操作

    一.浏览器操作 1.  back()与 forward() #coding=gbk //编码不一定是utf-8 from selenium import webdriver //导入包,也叫”模组“ ...

  7. 受不了Android SDK文档打开缓慢问题,自己开发简易脱机浏览器。

    google android sdk离线文档打开的时候特别慢,据说是要从谷歌官网拉取一些东西导致的.脱机浏览能够解决该问题.PC端能够使用firefox. 可是Android端貌似没有支持脱机工作的浏 ...

  8. Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)

    相关资料: http://blog.csdn.net/earbao/article/details/46514313 结果注意: 1.Use IdContext.IdGlobal 这两个单元2.不能使 ...

  9. Delphi实例之一个较复杂的记事本的实现

    http://www.mamicode.com/info-detail-110813.html delphi中控件位置及自动排版的问题 http://blog.csdn.net/avan_lau/ar ...

随机推荐

  1. SpringMVC学习记录五——功能开发及参数处理

    15       包装类型pojo参数绑定 15.1      需求 商品查询controller方法中实现商品查询条件传入. 15.2      实现方法 第一种方法:在形参中 添加HttpServ ...

  2. mysql中set和enum使用(简单介绍)

    简单介绍 SET类型 在创建表时,就指定SET类型的取值范围. 属性名 SET('值1','值2','值3'...,'值n') 其中,“属性名”参数指字段的名称:“值n”参数表示列表中的第n个值,这些 ...

  3. 【洛谷P3469】[POI2008]BLO-Blockade

    BLO-Blockade 题目链接 若一个点为割点:统计出每个子树的大小,两两相乘再相加, 再加上n-1,为这个点与其他点的拜访数, 因为拜访是互相的,最后再乘二即可 若一个点不是割点:只有(n-1) ...

  4. Notepad++ 插件之 TextFX (安装及作用)

    <安装:打开 notepad++  插件 -> Plugin Manager -> Show Plugin Manager -> available ->选中 TextF ...

  5. 如何确定VS编译器版本

    _MSC_VER是MSVC编译器的内置宏,定义了编译器的版本,_MSC_VER 值对应版本关系 MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2012)  MS ...

  6. U盘空间释放

    U盘做成启动盘后,怎么释放空间,恢复到原来的容量.这里有个帖子,我觉得很方便,不用安装什么东西,简单直接. http://blog.sina.com.cn/s/blog_68f6e8a901014cv ...

  7. CentOS上安装oracle11g报错处理

    ​ 最近,在处理oracle gateway的报错问题.只因个人的测试环境已经迁移到docker上了,又懒得装一套环境就直接在机器上安装oracle11g.今天分享的故事就从此开始-- 运行环境 项目 ...

  8. mysql 排名

    一.sql1{不管数据相同与否,排名依次排序(1,2,3,4,5,6,7.....)} SELECT obj. AS rownum FROM ( SELECT user_id, score FROM ...

  9. SSM项目中用ajax尝试实现controller请求中重定向不起作用的问题

    首先我在controller中有一个添加数据的方法: @RequestMapping(value="/emp",method=RequestMethod.POST) public ...

  10. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...