关闭IE时,会触发什么事件(50分)

  • 主题发起人 主题发起人 ZQFILE
  • 开始时间 开始时间
Z

ZQFILE

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在关闭IE前,释放ActiveForm占用的资源和一些临时文件,
但在ActiveForm 的ActiveFormDestroy事件没有被触发,导致
程序在关闭时出错,
 
如此:
在ActiveForm的Unit中,重载掉Destroy
。。。。。。

public
{ Public declarations }
destructor destroy
override;

...................................
destructor TLD.destroy;
var
i: Integer;
begin
//做类似的资源和内存处理
with DMStorage, LeaseHoldDM, SysDM do
for i := 0 to ComponentCount - 1 do
begin
if Components is TSocketConnection then
TSocketConnection(Components).Close;
if Components is TClientDataSet then
TClientDataSet(Components).close;
end;
//
inherited;
end;
 
我早试过了,不行
 
ft,我也遇到了这个问题。有解决的没有?
 
如果实在不行的话可以暴露一个方法比如 ActiveForm.Unload
在IE 的脚本中写如下:
<script language=jscript>
function Page_Close()
{
ActiveForm.Unload();
}
window.onunload=Page_Close;
</script>

我没仔细看但是也许可以临时性的解决问题。
 
procedure TActiveFormX.DestroyEvent(Sender: TObject);
begin
if FEvents <> nil then FEvents.OnDestroy;

// 编写你的释放代码
end;

看看可以行不。
 
引导到其它页面 onunload
关闭 onclose ,但之前肯定会触发 onunload
 
问题解决了
 
多人接受答案了。
 
后退
顶部