请教各位大侠!(200分)

  • 主题发起人 主题发起人 bfun
  • 开始时间 开始时间
B

bfun

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中使用了如下语句:
TDataNode=Record
ID:Integer;
end;
PData=^TDataNode;
//------------
P:PData;
Node:TTreeViewNode;
//--------------------
P:=New(PData);
P.ID:=QRY.FieldByName('ID').AsInteger;
Node:=TreeView1.Items.AddChild(Root,QRY.FieldByName('Name').AsString);
Node.Data:=P;
//-----------------------
问:
是否需在程序中逐个释放每个Node.Data中指向的内存?

 
你用几次new就得释放几次
 
对不起,可能是表达得不清楚,我意思是Delphi会不会自己释放,
不然的话做个遍历挺耗时。
 
必须得自己释放,写一个遍历,很惨的没有办法,我以前就吃过苦头。
其实遍历并不耗时
 
你用什么数据库,我用Oracle时用一句SQL语句就解决遍历的问题。效率比较满意。
 
在TreeView的OnDeletion事件中释放,
再删除TreeView的所有根节点
 
多人接受答案了。
 
to webcom:
对不起,贴子已经结束了,你的方法刚才解决我的问题,我另外开一贴给你分。
 
后退
顶部