我想在每个Node中保存一个Integer型的数据,如何保存和读取?

解决方案 »

  1.   

    可以
    DATA存一下指针类型的变量
    你可以定义一个类

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

  2.   

    要注意,DATA是一个指针,只能存放地址.Delphi中对象就是指向对象的指针,所以可以直接存放.
    销毁树时要注意释放内存.
      

  3.   

    使用递归吧:自己程序的一个过程,参考一下,存储过程查找所有父亲编号等于该节点编号的所有客户,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;