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 ...
随机推荐
- POJ 3070 矩阵快速幂
题意:求菲波那切数列的第n项. 分析:矩阵快速幂. 右边的矩阵为a0 ,a1,,, 然后求乘一次,就进一位,求第n项,就是矩阵的n次方后,再乘以b矩阵后的第一行的第一列. #include <c ...
- Android学习笔记_49_Android中自定义属性(attrs.xml,TypedArray的使用)
做Android布局是件很享受的事,这得益于他良好的xml方式.使用xml可以快速有效的为软件定义界面.可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了.那么如何才能做到像官方 ...
- Android学习笔记_43_网络通信之文件断点上传
1.建立服务端,用于接收上传的文件.这里使用Socket,文件可能会比较大.采用多线程编程,防止并发. package com.socket.service; import java.io.File; ...
- java操作文件常用的 IO流对象
1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序 ...
- Go转json数组
Go转json数组 最近因需要要调用gitlab的API,其中有一个是根据私有token获取Repositories列表 由于返回结果是一个json数组,单纯使用json.Unmarshal没法实现, ...
- python tips(持续更新中)
python tips 可变对象与不可变对象 在python中,可变对象有数值类型(int,float),字符串(str),元组(tuple),可变对象有列表(list),字典(dict),集合(se ...
- Autofac4.0以上的版本通过json配置文件方式实现IOC的MVC5设置
我们知道java用到了spring来实现IOC,而我们学习的.net也有.net spring.但是.net spring现在没人维护了,进公司后发现公司使用到了autofac.但是用的是3.X的版本 ...
- GitHub的搭建,使用
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius ...
- JS模块化知识总结
背景 <script src="a.js"></script> <script src="b.js"></script ...
- js文件处理File
支持File API的浏览器有IE10+,Firefox3.5+,Opera10.6+,Safari5+,Chrome. 1.在表单元素上<input type="fiel" ...