网上讲的那些方法感觉好狗血,什么必须用2个WebBrowser组件来操作呢什么的...简直无语...还是自己写一套.
[添加组件]
添加 Internet->WebBrowser //显示网页
[添加事件]
鼠标点击WebBrowser组件,在Events事件选项框中找到.
OnNewWindows2,OnStatusTextChange.双击添加事件.
[编写代码]
1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, OleCtrls, SHDocVw; 8 9 type 10 TForm1 = class(TForm) 11 WebBrowser1: TWebBrowser; 12 procedure FormCreate(Sender: TObject); 13 procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; 14 var Cancel: WordBool); 15 procedure WebBrowser1StatusTextChange(Sender: TObject; 16 const Text: WideString); 17 private 18 { Private declarations } 19 public 20 { Public declarations } 21 end; 22 23 var 24 Form1: TForm1; 25 NewURL:String; 26 //定义一个全局变量,让这个全局变量来获取最新的连接地址. 27 28 implementation 29 30 {$R *.dfm} 31 32 procedure TForm1.FormCreate(Sender: TObject); 33 begin 34 WebBrowser1.Navigate('http://www.cnblogs.com/') 35 //默认打开博客园 36 end; 37 38 procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; 39 var ppDisp: IDispatch; var Cancel: WordBool); 40 begin 41 Cancel:=true; 42 //懒得鸟对话框,这个可以这么理解. 43 WebBrowser1.Navigate(NewURL); 44 //读取新的地址,并加载. 45 end; 46 47 procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject; 48 const Text: WideString); 49 begin 50 NewURL:=text; 51 //Url地址发生改变,存到全局变量当中. 52 end; 53 54 end.
F9运行之后如下图: