关闭窗体程序,但是在进程中还是看到该程序在使用内存?怎么才能完全释放?(30分)

  • 主题发起人 主题发起人 bincle
  • 开始时间 开始时间
B

bincle

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If i=5 Then
Begin
Form1.Free;
Form1:=nil;
End;
end;

使用的是这种方式关闭窗体,但在进程中还看到该程序占用内存?应该怎么做呢?
 
Application.Terminate;
 
能写的详细一些吗?
 
If i=5 Then Application.Terminate;
 
直接利用主窗体的close方法
比如您的程序中 ,form1是主窗体,那只要form1。close就行了。
 
对于打开的子窗体,要用
Form1.Release
 
也可以在要关闭的窗体的Onclose事件中写下:
action:=cafree;
 
如果你查看看程序的结构;
应用程序启动时,由Application构造窗体体;
application.create(Form1,TForm1);
如果单纯调用Form1.free方法时,只是释放了Form1对象;
然而进程并未结束;如果调用Form1.close;同时
Form1的onclose((Sender: TObject;Action:Taction)中
Action:=caFree;
Application终止进程,并释放对象
 
不用form1.free,form1:=nil这么麻烦,用freeandnil(form1)
 
close方法其实就是调用
application.terminate
 
后退
顶部