请问在treeview的一个节点treenode里怎么存储两个值:‘张三’、‘001’
其中‘张三’作为text显示出来,‘001’作为value不显示???

解决方案 »

  1.   

    treenode.caption := 'zhangsan';
    treenode.data := Toobject(001);------
    I := Integer(treenode.data := Toobject(001);
      

  2.   

    treenode.text := 'zhangsan';
    treenode.data := Tobject(001);//这是一个指针。什么都可以存的------
    I := Integer(treenode.data := Toobject(001);
      

  3.   

    用.data属性
    如果存值很多可以声明一个记录
      TTreeViewData = record
        vText: string;
        vValue: String; 
        ……
      end;
    ……
    TreeData: TTreeViewData;
    treenode.data := TreeData;
    ……
      

  4.   

    自己做了一个测试,基本掌握了;)  PMyRec = ^TMyRec;
      TMyRec = record
        FName: string;
        LName: string;
      end;
    ...
    (1)
      rootnode:=tv.Items.AddFirst(nil,'root');  New(MyRecPtr);
      MyRecPtr^.FName :='fname_text1';
      MyRecPtr^.LName :='lname_text1';
      tv.Items.AddChildObject(rootnode,'test',MyRecPtr);
    (2)
      rootnode:=tv.Items.AddFirst(nil,'root');
      mynode:=tv.Items.AddObject(rootnode,'test',MyRecPtr);  New(MyRecPtr);
      MyRecPtr^.FName :='fname_text1';
      MyRecPtr^.LName :='lname_text1';
      tv.Items[1].Data :=MyRecPtr;... ...
    var i:integer;
        MyNode:TTreeNode;
        MyRecPtr: PMyRec;
        s1,s2:string;
    begin
      MyNode:=tv.Items[2];
      MyRecPtr:=Mynode.Data ;
      s1:=MyRecptr.FName ;
      s2:=MyRecPtr.LName ;
      showmessage('s1:'+s1+'-----s2:'+s2);
    end