procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  vTreeNode: TTreeNode;
begin
  if Button <> mbRight then Exit;
  vTreeNode := TTreeView(Sender).GetNodeAt(X, Y);
  if not Assigned(vTreeNode) then Exit;
  Caption := '你说的是' + vTreeNode.Text;
end;

解决方案 »

  1.   

    节点有一个自己的索引
    tree.selected.AbsoluteIndex;
    还有就是每一个节点,有一个DATA
    这个DATA可以是一个你自己定义的类型
    你可以在这里给你自己一个标记
    type
    PMyRec = ^TMyRec;
    TMyRec = record
      FName: string;
      LName: string;
    end;
    procedure TForm1.Button1Click(Sender: TObject);var
      MyRecPtr: PMyRec;
      TreeViewIndex: LongInt;
    begin
      New(MyRecPtr);
      MyRecPtr^.FName := Edit1.Text;
      MyRecPtr^.LName := Edit2.Text;
      TreeViewIndex := StrToInt(Edit3.Text);
      with TreeView1 do
      begin
        if Items.Count = 0 then
          Items.AddObject(nil, 'Item' + IntToStr(TreeViewIndex), MyRecPtr)
        else if (TreeViewIndex < Items.Count) and (TreeViewIndex >= 0) then      Items.AddObject(Items[TreeViewIndex], 'Item' + IntToStr(TreeViewIndex), MyRecPtr);
      end;
    end;************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  2.   

    上面的程序再加上下面显示的代码部分就能让你完整理解
    PMyRec(TreeView1.Selected.Data)^.LName;
    的意义了
    procedure TForm1.Button2Click(Sender: TObject);begin
      Label1.Caption := PMyRec(TreeView1.Selected.Data)^.FName + ' ' +
                      PMyRec(TreeView1.Selected.Data)^.LName;
    end;************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  3.   

    问题已经解决
    //实现鼠标右键选中结点 
    procedure ChangeSelectNode(vTree:TTreeView;X,Y:integer;Button: TMouseButton);
    var
        anode:TTreeNode;
    begin
      if button = mbright then  {是否按了右键}
        begin
          anode := vTree.GetNodeAt(X,Y);  {取x,y坐标下的结点}
           if anode<>nil then
          begin
            anode.Selected :=true;   {设置点中结点为选中}
            vTree.Selected:= aNode;
          end;
        end;
     end; 在onMouseDown事件下加上如下代码
     .....
     if Button = mbRight then
       begin
         //更新树的焦点
         ChangeSelectNode(TreeView1,X,Y,Button);
         //更新用户信息
         TreeView1Click(Sender);
       .......
    就是这样