Delphi:利用TreeView 的data屬性存儲相關數據

TreeView利用data屬性存儲相關數據
在Delphi中,TreeView控件是一款很出色並且很經常使用的控件。
在使用過程當中,瞭解到其TTreeNode對象的data屬性存儲相關數據頗有用,通常狀況下,咱們先聲明一個結構體以及其指針,例如:
type
   PMyRc = ^TMyRc;
   TMyRc = Record
     id:string;
     name:string;
     age:integer;
   end;node

添加一個節點,顯示信息爲TMyRc的name,同時存儲id,age。方法以下:
var
   p:PMyRc;
   i:integer;
begin
   Randomize;
   for i:= 0 to 9 do
   begin
   New(p);
   p.id:=inttostr(random(100));
   p.name:='name'+ inttostr(random(205));
   p.age:=random(90);
// Caption := p.id+'   '+P.name + '    '+inttostr(p.age);
   TreeView1.Items.AddObject(nil,p.name,Tobject(p));
   //dispose(p);        若是在這裏釋放指針,id,age並不能存在樹中,而是在這裏就被釋放了。應該在釋放樹的事件裏書寫。
   end;
end;dom

釋放樹的事件deletion, 即便是刪除也會執行這些代碼。因此不用擔憂內存泄漏。可是若是不書寫如下代碼,或者用相關的方式釋放內存,一定會形成內存泄漏。
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin 
   dispose(pmyrc(node.data));
end;指針

訪問某個樹枝中的age值:
Pmyrc(TreeView1.Selected.data)^.ageorm

相關文章
相關標籤/搜索