今天在大富翁上看到一网友问怎么在 treeView 里保存数组,一直没怎么用过 treeView ,也没有试用,正好可以借这个机会试试,连自动建一个 TreeNode 也不会,先查了查 大富翁的离线数据库,了解了一点。再试试保存数组到一个节点的 Data 里,(对指针用的不熟,出错),后来搞定了。再试着读出来 , 怎么再读出来呢?想了想,建一个动态数组,把原来的数组的地址给了这个动态数组不就行了,试了试,还真行。代码如下
private
s:array [1..4] of string;
.
.
.
procedure TForm1.Button3Click(Sender: TObject);
var
tn:ttreenode;
tn1:ttreenode;
begin
s[1]:='aaa';
s[2]:='bbb';
s[3]:='ccc';
s[4]:='ddd';
tn:=self.TreeView1.Items.AddFirst(nil,'root');
tn1:=self.TreeView1.Items.AddChild(tn,'child');
tn1.Data:=@s;
end;
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
a:string;
aa:array of string;
begin
if ( self.TreeView1.Selected.Text='child') then
begin
aa:=pointer(self.TreeView1.Selected.data);
showmessage(aa[3]);
end;
end;