我用了treeview处理数据,用treenode的data存放叶节点相关数据,有2种数据,用什么方法来区分、处理?

解决方案 »

  1.   

    别用DATA存,建个结构体,用那东西存,再用DATA存指向结构体的指针
      

  2.   

    type
      Ttttt = ^tttt;
        tttt =record
        SSS : String;
        III : integer;
      end;...
    //添加数据
    procedure TForm1.Button3Click(Sender: TObject);
    var
      Test : Ttttt;
    begin
      New(Test);
      Test.SSS:='ddddddddd';
      Test.III:=12345;
      TreeView1.Items.AddChildObject(nil,test.SSS,TObject(Test));end;//显示数据
    procedure TForm1.Button4Click(Sender: TObject);
    var
      s : string;
    begin
      S:=Ttttt(TreeView1.Items[0].Data)^.SSS;
      Showmessage(s);end;
      

  3.   

    我有2种数据,需要定义2个record来表示,问题是该怎样设置和判断2个类型?
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, StdCtrls;
    type
      PTreeData=^TTreeData;
      TTreeData=record
        Index:integer;
        Text:string;
      end;
    type
      TForm1 = class(TForm)
        TreeView1: TTreeView;
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
        procedure TreeView1Click(Sender: TObject);
      private
        { Private declarations }
        TreeDataLst:TList;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      TreeDataLst:=TList.Create;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      TreeDataLst.Clear;
      TreeDataLst.Free;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
        aData:PTreeData;
    begin
      i:=treeview1.Items.Count;
      New(aData);
      aData.Index:=i;
      aData.Text:='NO.'+inttostr(i);
      TreeDataLst.Add(aData);
      Treeview1.Items.Add(nil,'Node:'+inttostr(i)).Data:=aData;
    end;procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if Treeview1.Selected<>nil then
        showmessage(format('DataIndex:%d,DataText:%s',
          [PTreeData(Treeview1.Selected.Data).Index,
           PTreeData(Treeview1.Selected.Data).Text]))
    end;end.
      

  5.   

    我的意思是这样的:
    节点有2种类型:机构和设备种类
    type
      JgData=record
        jgm:string;
        jgmc:string;
    end;
    type
      SbData=record
        sbbh:integer;
        sbxh:string;
        sblx:string;
        sbxl:integer;
    end;
    type Pjg=^JgData;
    type PSb=^SbData;jg:pjg;
    sb:psb;a1=treeview1.items.add(nil,'a');
    a1.data:=jg

    a1.data:=sb;我用treeview1.selected来处理当前选中的节点,首先要知道这个节点的data是jg还是sb,该怎样判断?