Delphi实例之一个简易的浏览器的实现
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实例之一个简易的浏览器的实现的更多相关文章
- Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)
前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...
- (转载)delphi实例TDBGrid用右键菜单复制行粘贴行
delphi实例TDBGrid用右键菜单复制行粘贴行 这个从本质上来说就是DBGrid后台数据库的插入 右键复制当前行的相关数据到临时变量点粘贴时,覆盖数据或插入数据! db为数据库: 字段名id,n ...
- 【转】Delphi内嵌ASM简易教程
Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...
- Delphi实例之橡皮筋画图的实现
Delphi实例之橡皮筋画图的实现 在<Delphi7基础教程>这本书的练习中提到过一个橡皮筋画图的例子,书上的源码是错误的!不知道是打印的错误还是本身源码就有问题,我将它改了过来. 在F ...
- Delphi实例之绘制正弦函数图像
Delphi实例之绘制正弦函数图像 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphic ...
- python实例编写(1)--浏览器操作,元素操作
一.浏览器操作 1. back()与 forward() #coding=gbk //编码不一定是utf-8 from selenium import webdriver //导入包,也叫”模组“ ...
- 受不了Android SDK文档打开缓慢问题,自己开发简易脱机浏览器。
google android sdk离线文档打开的时候特别慢,据说是要从谷歌官网拉取一些东西导致的.脱机浏览能够解决该问题.PC端能够使用firefox. 可是Android端貌似没有支持脱机工作的浏 ...
- Delphi实例-IdTCPServer和IdTCPClient的使用(支持文件发送)
相关资料: http://blog.csdn.net/earbao/article/details/46514313 结果注意: 1.Use IdContext.IdGlobal 这两个单元2.不能使 ...
- Delphi实例之一个较复杂的记事本的实现
http://www.mamicode.com/info-detail-110813.html delphi中控件位置及自动排版的问题 http://blog.csdn.net/avan_lau/ar ...
随机推荐
- 课堂笔记——while循环
用 while循环 1.100以内所有数的和 static void Main1(string[] args) //不是自己做的 { //100以内所有数的和 ; ; //初始条件 ) //循环条件 ...
- c++字符串初始化
#include<string> string s1 = "abcdefg"; string s2("abcdefg");
- JavaScript函数-高阶函数
JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. function add(x,y,f) ...
- 由inline-block小例子引申出的一些问题,及IE6、IE7兼容性解决方案
使用场景分析: 常见的对块与块之间的横向排列处理 对同级所有元素使用display:inline-block; , 之后块与块直接会产生间隙问题 解决办法: 给父级设 font-size:0; 别高兴 ...
- Ajax跨域(jsonp) 调用JAVA后台
1. JSONP定义 JSONP是英文JSON with Padding的缩写,是一个非官方的协议.它允许在服务器端生成script tags返回至客户端,通过javascript callba ...
- ETO的公开赛T3《寻星》 题解(BY 超級·考場WA怪 )
题解 寻星 题意:给定一个有向带权图,定义从一点到另一点的某条路径长为路径上所有边权的最大值,并给定四个点编号w,t1,t2,t3. 求出一个点s,使它在到t1,t2,t3三点最短路径最大值最大或者根 ...
- C++求值顺序
<C++Primer5th>中文版第124页 C++语言没有明确规定大多数二元运算符的求值顺序, 给编译器优化留下了余地. 这种策略实际上是在代码生成效率和程序潜在缺陷之间进行了权衡,这个 ...
- Linux给当前用户指定目录授权命令
使用命令: chown -R user:user ./local 说明:user 为当前用户: 完毕!
- 洛谷 U45568 赌神:决斗
题目描述 \mathcal{tomoo}tomoo决定与\mathcal{CYJian}CYJian进行决斗! 已知\mathcal{tomoo}tomoo有\mathcal{N}N张扑克牌,每张扑克 ...
- json_decode结果为null的几种原因
值只能是UTF-8编码,元素最后不能有逗号,元素不能使用单引号,元素值中间不能有空格和n.