先定义一个数据结构type 
  PMyData=^TMyData;
  TMyData=Record
    sFName:string;
    nIndex:integer;
  end;
数据库中
ID:INT;NAME CHAR(20}
在加载树的时候根据数据库中的ID加树,想把ID给每个结点赋值,记录下来你后要用到怎么做(树中的结点个数不知道用数组不能确定,)以后每点击一个结点都得到个唯一的值
既上面的ID,请各位指教!

解决方案 »

  1.   

    var
      p:pmydata;
    begin
      new(p);
      p.sfname:=dataset.fieldbyname('id').asinteger;
      p.nindex:=dataset.fieldbyname('name').asstring;
      TreeView1.Items.AddObject(nil,p.sfname,p);
    end;procedure TForm1.TreeView1Deletion(Sender: TObject; Node: TTreeNode);
    begin
      dispos(p);
    end;
      

  2.   

    设用QUERY:var
      ..
      TreeData:PMyData;
    begin
      StrSql := 'SELECT ID,NAME FROM 你的表';
      aaQuery.close;
      aaQuery.sql.Add(StrSql);
      aaQuery.execSQL;
      aaQuery.First;
      while not aaQuery.Eof do
      begin
        //记录信息
        new(TreeData);
        TreeData^.DepaID := aaQuery.FieldByName('ID').AsString;    //记录名称
        StrTmp := Depa_Query.FieldByName('NAME').AsString;
        //向树图添加节点,名称是strtmp
        TreeView.Items.AddChildObject(nil,StrTmp,TreeData);
        AAQuery.Next;
      end;
    end;
    在Label1 上显示ID:
    procedure TForm1.TreeViewClick(Sender: TObject);
    begin
      Label1.Caption := PMyData(TreeView.Selected.Data)^.ID;
    end;