我在工程中作了一个类似于MSN、Foxmail的弹出式消息提示窗体,窗体中放了一个定时器,到规定时间之后自动关闭提示窗体。我现在想在其他unit中建立新的实例使用它,比如frmTip:=TfrmTipPop.crieate(nil),因为frmTip到时会自动关闭,但是这个变量怎么释放呢?我从任务管理器中观察到即使窗体卸载了,但是内存占用量也没有减少。如果紧跟在frmTip.Show后面写frmTip.free的话,提示窗体根本就不出来了。
调试欢乐多
if frmTip.ModelResult = mrOk then
FreeAndNil(frmTip);
frmTip := nil;
frmTip.Free;这样试试~~
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Assigned(frmTip) then
begin
Timer1.Tag :=Timer1.Tag +1;
if Timer1.Tag >100 then
begin
FreeAndNil(frmTip);
Timer1.Tag :=0;
end;
end else
Timer1.Tag :=0;
end;
procedure TfrmTip.Timer1Timer(Sender:TObject);
begin
self.close;
end;调用窗体时
procedure Showfrm;
var Aform:TfrmTip;
begin
Aform:=TfrmTip.create(Application);
try
Aform.Show;
finally
Aform.free;
end;
end;