对于TForm对象来说,close与delete究竟哪个更合适.

yangzhenhai 2003-09-12 02:15:37
我的程序出现非法访问,我怀疑是一些dialog窗口没有关闭好的原因.
请问用delete好还是close好.
...全文
39 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Robin 2003-09-12
  • 打赏
  • 举报
回复
:>
ThinkX 2003-09-12
  • 打赏
  • 举报
回复
模式窗口使用new和delete配对,
非模式窗口使用Close和Action = caFree。
leonpard 2003-09-12
  • 打赏
  • 举报
回复
New出来的TForm,最好使用Action=caFree与Form->Close()配合。
这样相对总要记得delete安全一些。
csdnxw 2003-09-12
  • 打赏
  • 举报
回复
同意Alpha81的说法,既然你说了,我就不重复了
Alpha_Gu 2003-09-12
  • 打赏
  • 举报
回复
new出來的就delete吧。
要不,在OnClose事件裡用Action = caFree應該也是一樣的效果吧。
Micowen989 2003-09-12
  • 打赏
  • 举报
回复
new 跟 delete 应该成对使用吧!
vargent77 2003-09-12
  • 打赏
  • 举报
回复
最好是动态创建的都delete然后再Close,因为只close的话可能内存泄漏
ccrun.com 2003-09-12
  • 打赏
  • 举报
回复
资源释放不干净。
jiangchun_xn 2003-09-12
  • 打赏
  • 举报
回复
我是说new出来的form用delete好。
jiangchun_xn 2003-09-12
  • 打赏
  • 举报
回复
我觉得delete 好。不过很多vcl控件内部使用了delete this,这也是c++一个争议的问题,因为你new了,delete却出错,这是让人不可接受的,就是因为前面发生了某个delete this。不过像close没有这么做。但是还有很多其他的问题,比如
b=new TForm(a)//a 作为Owner。
...
delete a;
...
delete b;//error
这些都是new 和delete 可能出现形式上的不匹配,关键在于自己的理解程度了。
yangzhenhai 2003-09-12
  • 打赏
  • 举报
回复
用close会有副作用吗?
tanbi52 2003-09-12
  • 打赏
  • 举报
回复
delete和new是一对儿啊,动态创建了,就用delete了
ccrun.com 2003-09-12
  • 打赏
  • 举报
回复
如果是在程序中动态生成的,用delete。
ccrun.com 2003-09-12
  • 打赏
  • 举报
回复
如果是在程序中动态生成的,用delete。

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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