在PageControl中,动态创建了tablesheet,同时在tablesheet上动态创建了Webbrowser,完成工作后双击关闭tablesheet。但此时动态创建的Webbrowser好像并没有同时被释放,从任务管理器中看占用的资源并没有释放。请问该如何写才能释放掉?或者说,能不能在关闭tablesheet的时候,同时释放掉上面的Webbrowser?创建代码如下:procedure Tfrm_main.NewWeb(url,id:string);
begin
try
s:=TTabsheet.Create(self);
s.PageControl:=Pagecontrol1;
s.Caption:='第 '+id+' 个';
p:=TPanel.Create(self);
p.Parent:=Pagecontrol1.Pages[s.PageIndex];
p.Align:=alclient;
w:=TWebbrowser.Create(self);
try
w.OnStatusTextChange:= mywebshow;
Twincontrol(w).Parent:=self.PageControl1.Pages[s.PageIndex];
Twincontrol(w).Align:=alclient;
w.Navigate(url);
finally
// s.Free;
// p.Free;
// w.free;
//如果直接在这里释放w,则这个procedure工作就不正常
end;
exceptend;
end;双击关闭的代码:procedure Tfrm_main.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Assigned(TPageControl(Sender).ActivePage) and (ssDouble in Shift) and (Button=mbLeft) then
TPageControl(Sender).ActivePage.Free;
end;
begin
try
s:=TTabsheet.Create(self);
s.PageControl:=Pagecontrol1;
s.Caption:='第 '+id+' 个';
p:=TPanel.Create(self);
p.Parent:=Pagecontrol1.Pages[s.PageIndex];
p.Align:=alclient;
w:=TWebbrowser.Create(self);
try
w.OnStatusTextChange:= mywebshow;
Twincontrol(w).Parent:=self.PageControl1.Pages[s.PageIndex];
Twincontrol(w).Align:=alclient;
w.Navigate(url);
finally
// s.Free;
// p.Free;
// w.free;
//如果直接在这里释放w,则这个procedure工作就不正常
end;
exceptend;
end;双击关闭的代码:procedure Tfrm_main.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Assigned(TPageControl(Sender).ActivePage) and (ssDouble in Shift) and (Button=mbLeft) then
TPageControl(Sender).ActivePage.Free;
end;
解决方案 »
- olecontainer控件显示word文档
- 数据库连接
- 如何通过activex关闭它所在的当前网页?
- 寻求idhttp servlet通讯的代码? 50分?
- 请教一个关于Button和Groupbox的问题,在线等,谢谢!
- 如何得到TDBGrid中某一格或者某一列的数据?
- 恢复问题?
- serversocket 和clientsocket 出现10053错误如何处理
- 请问哪有Delphi6下呀(不是试用版)!!!
- 小东西照样有50分。怎样取extended的整数部分?转换成integer?这是怎么啦, 系统老是将我的问题转换成别人的问题
- winexec 调用计算器程序后,打开位置如何确定
- 求一游戏代码
2.你可以循环tablesheet上的component,然后free
最好指定為page:w:=TWebbrowser.Create(PageControl1.Pages[s.PageIndex]);