为什么总出错!帮我看看!(25分)

  • 主题发起人 主题发起人 jericho3164
  • 开始时间 开始时间
J

jericho3164

Unregistered / Unconfirmed
GUEST, unregistred user!
我在PageControl上放置一个TWebBrowser用来写那种多窗口的浏览器,以下是关闭当前窗口的代码:
procedure TMainForm.N2Click(Sender: TObject);
begin
((self.PageControl1.ActivePage) as TTabSheetWithBrowser).WebBrowser.Free;
self.PageControl1.ActivePage.Free;
end;
那个TTabSheetWithBrowser是我自己写的一个类,把TTabSheet和TWebBrowser捆绑在了一起!
如果PageControl的窗口数大于1个,那么关闭窗口时不会出错,但是如果只剩一个窗口时,执行上面的代码就一定会出错!!但不是致命错误!
怎么解决?
 
学习腾讯的,最后一个页面时保持不关闭。
 
请问,如何在做完某一项工作时自动的关闭当前窗口?
注意不是要通过按钮的点击等方法!
 
执行下面时
((self.PageControl1.ActivePage) as TTabSheetWithBrowser).WebBrowser.Free;
要对 self.PageControl1.ActivePage 进行判断,这个很可能已经没有了,所以上面的出错。
 
((self.PageControl1.ActivePage) as TTabSheetWithBrowser).WebBrowser.Free;
self.PageControl1.ActivePage.Free;

不懂你第一句是什么意思?
为何不在TTabSheetWithBrowser类的析构函数中释放WebBrowser?
然后写成(PageControl1.ActivePage as TTabSheetWithBrowser).Free;
 
TTabSheetWithBrowser 得pagecount應該就可以了
 
多人接受答案了。
 
后退
顶部