动态创建的Webbrowser无法响应DocumentComplete事件(80分)

  • 主题发起人 主题发起人 bombgod
  • 开始时间 开始时间
B

bombgod

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下:
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的。
请问这是为什么?
谢谢!
 
看样子你的事件处理函数没有被正确传递,可以试下用指针传递.
估计你的类是
type
TDoWater = class
....
private
type MyBrowser = class
...
private
fWebBrowser:TWebBrowser;
public create(AEventFunc:OnDocumentComplete);//类似吧 ,
用指针试下
 
答案:必须要有可见的handle
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部