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

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

这是运行后的效果

源代码

主页面

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, OleCtrls, SHDocVw,
  8. ImgList, ToolWin;
  9.  
  10. type
  11. TForm1 = class(TForm)
  12. ToolBar1: TToolBar;
  13. StatusBar1: TStatusBar;
  14. ImageList1: TImageList;
  15. WebBrowser1: TWebBrowser;
  16. Panel1: TPanel;
  17. BackButton: TToolButton;
  18. ForwardButton: TToolButton;
  19. ToolButton3: TToolButton;
  20. RefreshButton: TToolButton;
  21. Stopbutton: TToolButton;
  22. HomeButton: TToolButton;
  23. Label1: TLabel;
  24. Edit1: TEdit;
  25. GotoButton: TBitBtn;
  26. procedure GotoButtonClick(Sender: TObject);
  27. procedure WebBrowser1DownloadBegin(Sender: TObject);
  28. procedure WebBrowser1DownloadComplete(Sender: TObject);
  29. procedure BackButtonClick(Sender: TObject);
  30. procedure ForwardButtonClick(Sender: TObject);
  31. procedure StopbuttonClick(Sender: TObject);
  32. procedure RefreshButtonClick(Sender: TObject);
  33. procedure HomeButtonClick(Sender: TObject);
  34. private
  35. { Private declarations }
  36. public
  37. { Public declarations }
  38. end;
  39.  
  40. var
  41. Form1: TForm1;
  42.  
  43. implementation
  44.  
  45. {$R *.dfm}
  46.  
  47. procedure TForm1.GotoButtonClick(Sender: TObject);
  48. begin
  49. WebBrowser1.Navigate(Edit1.Text); {连接到指定地址}
  50. end;
  51.  
  52. procedure TForm1.WebBrowser1DownloadBegin(Sender: TObject);
  53. begin
  54. Form1.Caption:=Form1.Caption+' '+Edit1.Text+'……';
  55. StatusBar1.SimpleText:='正在连接地址: '+Edit1.Text; {状态栏显示正在连接的地址}
  56. end;
  57.  
  58. procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
  59. begin
  60. Form1.Caption:=Form1.Caption+' '+WebBrowser1.LocationURL;
  61. StatusBar1.SimpleText:='完成' +WebBrowser1.LocationURL;{连接完成}
  62. end;
  63.  
  64. procedure TForm1.BackButtonClick(Sender: TObject);
  65. begin
  66. try
  67. WebBrowser1.GoBack; {返回}
  68. except
  69. ShowMessage('已经达到最早历史记录');
  70. exit;
  71. end;
  72. end;
  73.  
  74. procedure TForm1.ForwardButtonClick(Sender: TObject);
  75. begin
  76. try
  77. WebBrowser1.GoForward; {前进}
  78. except
  79. ShowMessage('已经达到最新历史记录');
  80. exit;
  81. end;
  82. end;
  83.  
  84. procedure TForm1.StopbuttonClick(Sender: TObject);
  85. begin
  86. WebBrowser1.Stop; {停止}
  87. end;
  88.  
  89. procedure TForm1.RefreshButtonClick(Sender: TObject);
  90. begin
  91. WebBrowser1.Refresh; {刷新}
  92. end;
  93.  
  94. procedure TForm1.HomeButtonClick(Sender: TObject);
  95. begin
  96. WebBrowser1.GoHome;
  97. Edit1.Text:='http://www.cnblogs.com/Chaobs'; {主页}
  98. end;
  99.  
  100. 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. Github 上一些关于PHP的开源项目

    Github  上一些关于PHP的开源项目,总有你喜欢的那一款 Awesome PHP Package Management Package Management Related Frameworks ...

  2. 学习Apache的mod rewrite、access写法

    Apache的mod_rewrite是提供了强大URL操作的杀手级的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和 ...

  3. 7.29NOIP模拟赛

    7.29NOIP模拟赛 T1 YSG (1s,64MB,ysg.in,ysg.out) 描述 ysg,yxy,azw 三人正在刷题. 他们每做一题的时间都是一个有理数. 如果在某一时刻,三人同时做完一 ...

  4. android中的键值对

    hashmap,contentvalue,namevaluepair,jsonobject ArrayList和HashMap的区别:内部元素:ArrayList储存的是单个对象(此对象是可以通过设置 ...

  5. JS高阶函数与函数柯里化

    高阶函数 满足下列条件之一的函数: 函数作为参数被传递(如回调函数): 函数可以作为返回值输出: 一些内置高阶函数的例子: Array.prototype.map map()方法通过调用对输入数组中的 ...

  6. 《深入理解Spring Cloud与微服务构建》书籍目录

    转载请标明出处: https://blog.csdn.net/forezp/article/details/79735542 本文出自方志朋的博客 作者简介 方志朋,毕业于武汉理工大学,CSDN博客专 ...

  7. 02-第一个iOS程序-开发步骤

    打开Xcode 选择项目模板 Single View Application是最适合初学者的模板 设置项目属性 运行程序 不管怎样,先运行第一个iOS程序看看效果先(用快捷键Command + R 也 ...

  8. 『ACM C++』 PTA 天梯赛练习集L1 | 012-015

    女神节快乐鸭,大学的女生节真的是忙碌呢,到处送礼物,真的是当时男生节的出来混的,总该是要还的hhhhh ------------------------------------------------ ...

  9. noip2018 洛谷 P1969积木大赛

    1 //一定不要忘记这句话 “连续区间 ”!! #include<bits/stdc++.h> using namespace std; int main(){ int n, h;//n是 ...

  10. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--D-psd面试

    链接:https://www.nowcoder.com/acm/contest/90/D 来源:牛客网 1.题目描述 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习. 埃森哲 ...