TTreeNode的Data属性是不是可以用来保存附加数据?如何操作?

hfrui 2003-08-18 07:19:29
我想在每个Node中保存一个Integer型的数据,如何保存和读取?
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiexinliu 2003-08-19
  • 打赏
  • 举报
回复
使用递归吧:自己程序的一个过程,参考一下,存储过程查找所有父亲编号等于该节点编号的所有客户,pstr为一个指向字符串的指针。可以把TclientDatset换成任意的数据集
procedure TCustomerRelationFrm.CreateSubTree_all(FNodeName: string; Node: TreeNode = nil);
var
mLocalName: string;
TreeNode: TTreeNode;
Ads_Tmp: TClientDataset;
p:pstr;
begin
ADS_Tmp := Tclientdataset.Create(Self);
ADS_Tmp.RemoteServer:=mainfrm.SocketConnection1;
ADS_Tmp.ProviderName:='datasetprovider3';
with ADS_Tmp do
begin
Close;
CommandText :='QUERY_customer_By_Parent_No_sec '+''''+FNodeName+''''+','+''''+userid+'''';;
//SELF.Memo1.Lines.Add(commandtext);
Open;
First;
while not Eof do
begin
mLocalName := FieldbyName('ID').Asstring;
new(p);
p^:=mlocalName;
TreeNode :=self.tv_zb.Items.AddChildObject(Node, FieldByName('Name').AsString,p);
CreateSubTree(mLocalName, TreeNode);
Next;
end;
end;
ADS_Tmp.Free;
end;
Cipherliu 2003-08-18
  • 打赏
  • 举报
回复
要注意,DATA是一个指针,只能存放地址.Delphi中对象就是指向对象的指针,所以可以直接存放.
销毁树时要注意释放内存.
hfrui 2003-08-18
  • 打赏
  • 举报
回复
谢谢
Spqk005 2003-08-18
  • 打赏
  • 举报
回复
可以
DATA存一下指针类型的变量
你可以定义一个类

TCusInfo=Class
custNO:integer;
custName:String;
end;
然后定义它的实例 这样就可以把实例指针给DATA
你就可以存取INTEGER数据了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧