频道栏目
首页 > 程序开发 > 软件开发 > Delphi > 正文
VCL中的一个内存泄漏Bug
2009-05-23 18:30:04           
收藏   我要投稿

在valedit.pas中,TValueListStrings类没有实现虚拟的Destroy方法,
它实现了虚拟的Clear方法, 但是它的父类TStringList的
Destroy中并不通过调用Clear()来释放资源,因此TValueListStrings
中为成员ItemProps分配的内存就丢失了.

所以如果在Form中添加了TValueListEditor控件,并且在代码中
使用了其ItemProperty成员(因为它是延迟分配,只有第一次使用时才分配内存),
则需要在Form.Destroy()方法中显式的调用Clear()方法,如下:

MyForm.Destroy()
{
 ...
 MyValueListEditor->Strings->Clear();
 ...
}

这是在C++ Builder 6的VCL Source中发现的, 估计 Delphi 6中
也应该有这个Bug.

点击复制链接 与好友分享!回本站首页
相关TAG标签 内存
上一篇:DELPHI的奇异菜单的编写
下一篇:windows消息大全1
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站