A
  -a
     --a1   
     --a2
     --a3

  -b
     --b1
     --b2
     --b3
当选中a2时,取得的节点是A,并获得它的Data值.

解决方案 »

  1.   

    var
      t:TTreeNode;
    begin
      t := TreeView1.Selected.Parent;
      while(t <> nil)
      begin
        t := t.Parent;
      end;
      t.Data...;
    end;
      

  2.   

    你的树中根节点level都在0级,可以这样写:
    function GetRootNode(node: TTreeNode):TTreeNode;
    var
      i: integer;
      n: TTreeNode;
    begin
      n := node;
      while(node.level>0) do begin
        n = n.parent;
      end;
      result := n;
    end;
      

  3.   

    function GetRootNode(node: TTreeNode):TTreeNode;
    var
      i: integer;
      n: TTreeNode;
    begin
      n := node;
      while(n.level>0) do begin // 应该为n.level
        n = n.parent;
      end;
      result := n;
    end;
      

  4.   

    是啊。有Level就行了。
    同意追日。
      

  5.   

    var
       pItem:TTreeNode;
    begin
       pItem:=TreeView1.Selected;
       while(pItem.Parent <> nil)
       begin
           pItem := pItem.Parent;
       end;
       pItem.data....
    end;