treeview.node.data
求助treeview.node.data
如何取出deptid? 结构体,类啊就算了,我想简单点。先谢各位了!
------解决方案--------------------
道理一样的,存的什么类型,就用什么类型转换
string(Tnode2.Data);
------解决方案--------------------
应该这么用:
var
deptid:PChar
begin
new(deptid, size);
Tnode2 := TVdept.Items.AddChild(Tnode,deptname);
Tnode2.Data := deptid;
end;
另外程序结束时别忘记释放
------解决方案--------------------
使用data需要分配、释放内存空间太麻烦
我给Treenode增加了一个dataString,使用起来就无须分配、释放内存空间了
------解决方案--------------------
var
deptid : PString;
begin
//...
New(deptd);
deptd^ := .....;
Tnode2 := TVdept.Items.AddChild(Tnode,deptname);
Tnode2.Data := Pointer(deptid);
//增加过程不能对deptid释放
end;
取数据的时候
var
deptid : PString;
begin
//...
deptid := Tnode2.Data;
ShowMessage(deptid^);
//
end;
//释放的时候
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
Dispose(PString(Node.Data));
end;
不过我偏好,在Form上定义一个array of xxx
然后在Node.Data中写入序号,取出序号,然后在array中即可取得数据
这样就可以不管释放的问题.
------解决方案--------------------
- Delphi(Pascal) code
Tnode2 := TVdept.Items.AddChild(Tnode,deptname); Tnode2.Data := Pointer(deptid);
如何取出deptid? 结构体,类啊就算了,我想简单点。先谢各位了!
------解决方案--------------------
道理一样的,存的什么类型,就用什么类型转换
string(Tnode2.Data);
------解决方案--------------------
应该这么用:
var
deptid:PChar
begin
new(deptid, size);
Tnode2 := TVdept.Items.AddChild(Tnode,deptname);
Tnode2.Data := deptid;
end;
另外程序结束时别忘记释放
------解决方案--------------------
使用data需要分配、释放内存空间太麻烦
我给Treenode增加了一个dataString,使用起来就无须分配、释放内存空间了
------解决方案--------------------
var
deptid : PString;
begin
//...
New(deptd);
deptd^ := .....;
Tnode2 := TVdept.Items.AddChild(Tnode,deptname);
Tnode2.Data := Pointer(deptid);
//增加过程不能对deptid释放
end;
取数据的时候
var
deptid : PString;
begin
//...
deptid := Tnode2.Data;
ShowMessage(deptid^);
//
end;
//释放的时候
procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
begin
Dispose(PString(Node.Data));
end;
不过我偏好,在Form上定义一个array of xxx
然后在Node.Data中写入序号,取出序号,然后在array中即可取得数据
这样就可以不管释放的问题.
------解决方案--------------------