代码如下:
1.
//动态创建一个TWebBrowser对象
fWebBrowser := TWebBrowser.Create(nil);
//创建OnDocumentComplete的响应
fWebBrowser.OnDocumentComplete := MyOnDocumentComplete;
2.
//MyOnDocumentComplete事件的定义
procedure TDoWater.OnDocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL:OleVariant);
begin
Showmessage('Document Complete!');
end
3.
//调用Navigate
fWebBrowser.Navigate('........');问题:
在3处,Navigate完了之后,并没有触发2处的MyOnDocumentComplete事件。
如果把1处的 fWebBrowser.OnDocumentComplete := MyOnDocumentComplete
改成:fWebBrowser.OnNavigate2Complete := MyOnDocumentComplete
是可以触发MyOnDocumentComplete的。请问这是为什么?
谢谢!
1.
//动态创建一个TWebBrowser对象
fWebBrowser := TWebBrowser.Create(nil);
//创建OnDocumentComplete的响应
fWebBrowser.OnDocumentComplete := MyOnDocumentComplete;
2.
//MyOnDocumentComplete事件的定义
procedure TDoWater.OnDocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL:OleVariant);
begin
Showmessage('Document Complete!');
end
3.
//调用Navigate
fWebBrowser.Navigate('........');问题:
在3处,Navigate完了之后,并没有触发2处的MyOnDocumentComplete事件。
如果把1处的 fWebBrowser.OnDocumentComplete := MyOnDocumentComplete
改成:fWebBrowser.OnNavigate2Complete := MyOnDocumentComplete
是可以触发MyOnDocumentComplete的。请问这是为什么?
谢谢!
procedure TfrmMain.Test;
var
browser: TWebBrowser;
begin
browser := TWebBrowser.Create(Self);
TControl(browser).Parent := Self; // browser.Parentwindow := Handle;
browser.SetBounds(10, 10, 200, 200);
browser.OnDocumentComplete := DoDocumentComplete;
browser.Show;
browser.Navigate('http://www.google.com');
while browser.Busy do
begin
Application.ProcessMessages;
end;
end;