TreeView的Data的内存泄漏问题

来源:互联网 发布:流行网络语 编辑:程序博客网 时间:2024/05/10 12:24

      经常使用TreeView控件,一直都没有注意到结点的DATA的内存释放问题,因为虽然经常用,但是有时候data就是一个ID值,有时候是一个结构指针,而用指针是需要new的,想着delphi会自动释放的(好像也有人这么说)。

     其实,一直以来都是错误的呀,因我最近用了检测内存泄漏的工具才发现,真笨呀。释放此指针也很简单,在TreeView的OnDelction事件中写代码:

  1. procedure TfrmAuthDefine.tv_authDeletion(Sender: TObject; Node: TTreeNode);
  2. var
  3.   p :pTdomain;    //结构指针
  4. begin
  5.   inherited;
  6.   if NOde.Data <> nil then
  7.   begin
  8.      p := pTdomain(Node.Data);
  9.      Dispose(p);
  10.   end;
  11. end;

这样在窗口关闭的时候执行itm.clear,该代码就会把所有内存都释放了。

原创粉丝点击