如何在函数里退出程序并完全释放资源

lyzoyu 2009-06-03 01:31:19
主程序是一个窗体,中间动态创建了一些对象,在TForm.OnClose中对这些资源进行释放
现在需要在一个函数中执行程序退出,调用Application.teminate好像没执行到OnClose,这样的话那些动态资源应该都还没释放吧
...全文
123 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rex_love_Burger 2009-06-05
  • 打赏
  • 举报
回复
SendMessage(YourWindowHandle, WM_CLOSE, 0, 0);
dinoalex 2009-06-05
  • 打赏
  • 举报
回复
在onClose事件里加 action:= cafree; 试试
AsheBin 2009-06-03
  • 打赏
  • 举报
回复
看你是怎么create的了。
Create后面带了(owner)的,就不用在手动释放了。
如果没有,就要自己手动释放。
在窗体的ondestroy里面释放就可以。
建议临时对象随时创建随时释放,用
try
//创建
finally
//释放
end;
sxy_9761 2009-06-03
  • 打赏
  • 举报
回复
进程关了就OK.
mdejtod 2009-06-03
  • 打赏
  • 举报
回复
调用Application.teminate
并不会执行窗体的onclose事件
把你的窗体的onclose 代码写在ondestroy里即可
bdmh 2009-06-03
  • 打赏
  • 举报
回复
一般来说,进程结束会自动释放所占资源,不过,如果你能控制好每个对象的释放过程,还是自己控制的好,释放动态创建的对象,动态数组的清理等等,任何事情交由系统处理,有时并不是一件好事情
喝口水 2009-06-03
  • 打赏
  • 举报
回复
怕你不明白,假如你在名称为a的窗口上写的onclose,那么你直接调用
a.close即可调用你写的onclose函数,也就释放了你的资源
喝口水 2009-06-03
  • 打赏
  • 举报
回复
你直接close即可
lyzoyu 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bdmh 的回复:]
一般来说,进程结束会自动释放所占资源,不过,如果你能控制好每个对象的释放过程,还是自己控制的好,释放动态创建的对象,动态数组的清理等等,任何事情交由系统处理,有时并不是一件好事情
[/Quote]
哦~难怪执行了很多次也没见内存有上升的迹象
lyzoyu 2009-06-03
  • 打赏
  • 举报
回复
看来还是要用close啊

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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