S
SimpleMan
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi帮助中有下面的Example:
procedure TForm1.Button1Click(Sender: TObject);
var
MyRecPtr: PMyRec;
TreeViewIndex: LongInt;
begin
New(MyRecPtr);
MyRecPtr^.FName := Edit1.Text;
MyRecPtr^.LName := Edit2.Text;
TreeViewIndex := StrToInt(Edit3.Text);
with TreeView1 do
begin
if Items.Count = 0 then
Items.AddObject(nil, 'Item' + IntToStr(TreeViewIndex), MyRecPtr)
elseif (TreeViewIndex < Items.Count) and (TreeViewIndex >= 0) then
Items.AddObject(Items[TreeViewIndex], 'Item' + IntToStr(TreeViewIndex), MyRecPtr);
end;
end;
//New(MyRecPtr);这句创建了指针,然后赋给TreeNode.Data,之后我们可以如下使用这个数据:
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption := PMyRec(TreeView1.Selected.Data)^.FName + ' ' +
PMyRec(TreeView1.Selected.Data)^.LName;
end;
~~~~~~~~~~~~
请问:程序结束的时候是否需要遍历TreeView的节点释放掉这个Data指向的数据呢?
还是Delphi会自己释放它?为什么?
担心会有内存泄漏所以问问大家? 100分敬上。
procedure TForm1.Button1Click(Sender: TObject);
var
MyRecPtr: PMyRec;
TreeViewIndex: LongInt;
begin
New(MyRecPtr);
MyRecPtr^.FName := Edit1.Text;
MyRecPtr^.LName := Edit2.Text;
TreeViewIndex := StrToInt(Edit3.Text);
with TreeView1 do
begin
if Items.Count = 0 then
Items.AddObject(nil, 'Item' + IntToStr(TreeViewIndex), MyRecPtr)
elseif (TreeViewIndex < Items.Count) and (TreeViewIndex >= 0) then
Items.AddObject(Items[TreeViewIndex], 'Item' + IntToStr(TreeViewIndex), MyRecPtr);
end;
end;
//New(MyRecPtr);这句创建了指针,然后赋给TreeNode.Data,之后我们可以如下使用这个数据:
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption := PMyRec(TreeView1.Selected.Data)^.FName + ' ' +
PMyRec(TreeView1.Selected.Data)^.LName;
end;
~~~~~~~~~~~~
请问:程序结束的时候是否需要遍历TreeView的节点释放掉这个Data指向的数据呢?
还是Delphi会自己释放它?为什么?
担心会有内存泄漏所以问问大家? 100分敬上。