为什么用close 关闭程序,窗体关闭了但内存没有真正的释放?(在线)

sfxllj 2003-10-16 03:36:04
为什么用close 关闭程序,窗体关闭了但内存没有真正的释放?
...全文
168 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sfxllj 2003-10-16
  • 打赏
  • 举报
回复
liufuyahong
你说的方法还是不行
liufuyahong 2003-10-16
  • 打赏
  • 举报
回复
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FreeAndNil (self);
end;
sfxllj 2003-10-16
  • 打赏
  • 举报
回复
Application.CreateForm(TFormDMenu, FormDMenu);
FormDMenu.ShowModal;
FormDMenu.Free;
sfxllj 2003-10-16
  • 打赏
  • 举报
回复
窗口是动态创建的,很多其他的组件也是动态创建的。但创建时没有用nil
就是form:=TForm.Create(application);这种。
foxnt 2003-10-16
  • 打赏
  • 举报
回复
你的问法好象有问题吧。
是关闭单个窗口,还是关闭整个程序?如果是关闭整个程序的话,既然程序都退出来了,还有什么“没有真正释放”的问题吗?
delphi_xizhousheng 2003-10-16
  • 打赏
  • 举报
回复
你创建的时候的是运行时自动创建的还是设计期创建的?
form:=TForm.Create(application);//最好不用写nil
Delphi_Li 2003-10-16
  • 打赏
  • 举报
回复
出现这种情况可能是你的窗口是你动态创建的,创建的参数使用的是Nil,例如:
XXX := TForm.Create( Nil );
由于没有指明XXX的创建者,所以必须使用XXX.Free来释放这个窗口,否则就会出现你所说的问题!!!
delphi_xizhousheng 2003-10-16
  • 打赏
  • 举报
回复
这只是释放内存,没有释放指针
用FreeAndNil(form)
sfxllj 2003-10-16
  • 打赏
  • 举报
回复
不是,我是说程序在关闭之后,内存中还有他在运行。
angle097113 2003-10-16
  • 打赏
  • 举报
回复
onclose事件中
action:=cafree;
waysoft 2003-10-16
  • 打赏
  • 举报
回复
方法之一onclose事件,加入如下语句

Action := caFree;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧