本帖最后由 群发软件 于 2017-8-9 22:58 编辑
Delphi还可以制作简单浏览器方便自己管理一些程序
很多人想把自己编写的应用程序做成以浏览器为界面,通过打开浏览器的方式来使用应用程序,其实在delphi中实现起来很简单,我们以用delphi6.0为例把实现的完整步骤写出如下:
1、选择"file\new\other"于new items对话框中选择activex选项,在其中选择建立activex form。此时会弹出一个对话框用于输入你所建立activex组件的名称、object pascal程序单元名称、项目名称等。还有一些activex包含版本控制编号等可选项,可以按缺省的设置直接点击ok即可。
2、现在你可以在打开的工程中来设计你的程序了,这里和一般的应用程序的设计一样,可以根据自己的需要来创建不同的form来实现自己的功能。但需要注意一点的是各form之间的调用不能用form.showmodal来实现了,需要动态调用form来实现,如以下定义过程:
Procedure Tform1.ShowForm(AFormClass:TFormClass);
Begin
With AFormClass.Create(Self) do
try
ShowModal;
finally
Free;
end;
End;
调用form2可以用:showform(Tform2),程序设计完成后,保存单元文件和工程文件到相应的目录下。假设保存在"c:\my documents"。
3、程序设计完成之后,可以准备生成你所想要的应用程序了,但这里不是点击运行,而是首先选择"project\web deployment options" 在project选项中的"Target dir"中添入".\", "Target URL"中添入"./", "HTML dir"中添入".\"来设置一些文件存放路径。最后选择"project\web deploy",点击"yes to all"即可。
此时打开 "c:\my documents"会看到已生成的htm文件,打开htm文件你会看到你所设计的应用程序已经可以在浏览器中使用了。你可以用网页编辑器来修改所生成的htm文件使它更符合你的要求。至此完整的实现过程结束。实际上Delphi是把编写的应用程序编译成了activex组件,在浏览器中调用activex组件,所以只适用于一些小的应用程序。
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:=; {主页} 98 end; 99 100 end.
很简单吧!
Delphi的WebBrowser实际上是调用了mshtml.dll里的函数,而mshtml.dll就是所谓的IE内核Triend,换句话说,这个浏览器和当前电脑上的IE浏览器公用同一内核。
鉴于国内大部分用户电脑上装的都是IE8、9,个人认为下载一个IE11(IE11的速度绝对比得上Chrome),然后提出mshtml.dll,放到文件夹下,这样就能够有更好的打开速度。