社区
Delphi
帖子详情
OnClose的时候释放内存
caize131
2008-07-17 03:29:25
我用Application.CreateForm 创建了一个窗体.
使用的是Show方式显示的.
在OnClose里面写了
form1 := nil;
Action := cafree;
但是为什么内存还是没有释放呢?当第二次创建的时候内存会继续增加.
有什么办法能够在Close的时候释放掉内存?
在OnClose里面写form1 := nil;Action := cafree; 就不用说了,行不通的
...全文
104
7
打赏
收藏
OnClose的时候释放内存
我用Application.CreateForm 创建了一个窗体. 使用的是Show方式显示的. 在OnClose里面写了 form1 := nil; Action := cafree; 但是为什么内存还是没有释放呢?当第二次创建的时候内存会继续增加. 有什么办法能够在Close的时候释放掉内存? 在OnClose里面写form1 := nil;Action := cafree; 就不用说了,行不通的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caize131
2008-07-18
打赏
举报
回复
算了,新任务下来了,这个自己没事给自己找事的问题不想了.
看来是我的思路有点问题.^_^
ditouhu
2008-07-17
打赏
举报
回复
在别的窗口ONCREATE事件中TRY创建它,然后finally释放它。
lake_cx
2008-07-17
打赏
举报
回复
你那就是最好的死法了。。。
窗体本身不怎么占用内存的,内存没减少应该是你在窗体OnDestroy里面有成员忘了释放吧
caize131
2008-07-17
打赏
举报
回复
多窗体的.偶尔使用一次的没有必要一直留在内存里面,
使用的还是Show的方式,不知道什么时候关闭.
这样想在Close的时候自动Free掉.
按你说的,有没有好点的死法?呵呵
JeffChung
2008-07-17
打赏
举报
回复
自杀?
搞不懂楼主,如果是反复使用的窗体,而且用Application.CreateForm创建的,为什么在Close的时候要释放了,下次调用又还要创建,多复杂多麻烦啊
如果是只偶尔使用一次的窗体,在使用完之后form1.Free;form1 :=nil;也不是在它自身的Close事件里啊,不允许自杀的吧
caize131
2008-07-17
打赏
举报
回复
- -!
这个方法没用
点击关闭后的内存并没有放,而再创建的时候内存反而加了上去
gzmhero
2008-07-17
打赏
举报
回复
OnClose里面:
Action:=caFree;
OnDestroy里面:
Form1:=nil;
OnClose
()消息和 OnDestroy()消息
释放
动作时用到
基于对话框的MFC程序,发现每次程序退出时,托盘的小图标不能自动消失,鼠标移上去之后才能消失,比较不爽。 后来发现我删除这个图标的代码是在自己重写的
OnClose
()函数中,结果断点一看,
OnClose
()根本没有被调用,确切的说是点“退出”不调用,点右上角的“叉”才调用,难怪出现这个结果,后来还有我想在
OnClose
()函数中有其他操作也没有被调用。 在http://www.qqgb.com/P...
MFC 非模态对话框退出出现
内存
泄漏问题解决
问题描述 MFC在ChildFrame中采用非模态的方式调用一个对话框,直接退出对话框就出现了下图的错误。 问题解决 1、在对话框窗口中,添加
OnClose
()以及PostNcDestroy()两个函数 2、代码如下 void CDlg::PostNcDestroy() { // TODO: 在此添加专用代码和/或调用基类 delete this; CDialogEx::PostNcDestroy(); } void CDlg::
OnClose
() { // TODO: 在此添加消息处理程序代码
MFC非模态对话框
内存
释放
非模态对话框的
内存
释放
: 第一步:在
OnClose
() 函数中添加DestroyWindow() ; 第二步:在PostNcDestroy() 中添加delete this。
非模态对话框
内存
释放
问题
转自:http://blog.csdn.net/bao_qibiao/article/details/4504647 分类: VC2009-08-31 18:48 4220人阅读 评论(0) 收藏 举报 dialogwindowsnulldelete任务 对于一个非模态子对话框的
内存
释放
,一般的处理方法是在
OnClose
() 函数中添加DestroyWindow() ,然
MFC如何实现new出来的非模态窗口关闭时自动
释放
资源
因为前者是会调用CDialog::EndDialog, 其是为模态对话框而设计,非模态调用它只能隐藏窗体而不会
释放
。3、如果对话框为游离状态(指父窗体或其他窗体没有掌控指向该对话框的指针),就需要重载PostNcDestroy, 当然父窗体有该模态对话框的指针CDlg* pDlg,在适当的时候delete pDlg即可。对于一个mfc的对话框对象,它实际上分为两部分,一部分是系统内核对象,用句柄标识,一部分是用于包装这个句柄的c++对象。1、非模态对话框是在堆中产生,必须要
释放
;
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章