怎样捕捉TWebbrowser的close消息?是否重载Twebbrowser.windowproc?(50分)

  • 主题发起人 主题发起人 stanely
  • 开始时间 开始时间
S

stanely

Unregistered / Unconfirmed
GUEST, unregistred user!
因为我这个webbrowser是动态生成的,而且在form1里面定义了如下:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
i:integer;
begin
if msg.message=wm_close then
begin
handled:=true;
for i:=1 to pagecontrol1.PageCount-1 do
begin
if tsobj(pagecontrol1.Pages).Webbrowser.handle=msg.hwnd then
begin
tsobj(pagecontrol1.Pages).Free;
break;
end;
end;
end;
用这个来捕捉用户点了js做的关闭以后的webbrowser自己关闭的消息,并且free掉webbrowser.
tsobj是从TTabsheet继承下来的,webbrowser是他的成员。

但是这样做的时候总会出现错误提示,虽然tsobj被能free掉。

我想是不是能重载webbrowser的windowproc自己处理wm_close和webbrowser的回车消息呢?

如果能,请告诉我怎样做,谢谢!
 
destructor TTabSheetWithBrowser.Destroy;
begin
if WebBrowser<>nil then
WebBrowser.Free;
inherited Destroy;
end;
 
destructor TTabSheetWithBrowser.Destroy;
begin
if WebBrowser<>nil then
WebBrowser.Free;
end;

 
后退
顶部