我自定义了一个form 类,
在程序中定义了一个全局变量 myform :Tmyform;主窗口中Try
myform:=tmyform.create; ........
except
freeandnil(myform);
end;
mid窗口中退出时
myform.close(sender:Tobject);
action:=cafree;
这样会不会存在内存泄露问题?
在程序中定义了一个全局变量 myform :Tmyform;主窗口中Try
myform:=tmyform.create; ........
except
freeandnil(myform);
end;
mid窗口中退出时
myform.close(sender:Tobject);
action:=cafree;
这样会不会存在内存泄露问题?
try
try
myform.showmodal;
...
except
...
end;
finally
FreeAndNil(myform);
end;
myform.close(sender:Tobject);
myform := nil;
action:=cafree;
begin
try finally
myform.Free;
myForm := nil;
end;
end;
freeandnil(myform);可以不用,只要Close就行了。
下面的代码是想当新建新窗体时先检测是否原来已经创建过了,如果创建过,则先释放,但不懂每次按下面的代码都会先提示 ”here"代码,然后接着创建新窗体请问,我应该如何做? Try try
if assigned(child) then freeandnil(child);
except
showmessage('here');
end; child := Tlogin_f.Create(application);
except
freeandnil(child);
messagebox(self.Handle, '错误!', '系统创建新窗口出错,请重新启动程序!', mb_ok);
exit;
end;