也就是如何把一个叶子节点的父节点直到根节点的绝对路径求出来?

解决方案 »

  1.   

    叶节点得到以后就可以通过属性来获得上一级的节点的。(具体什么属性我忘了),用一个循环来获取上一级节点,然后记录,一直取到上一级节点为nil的时候就可以了
      

  2.   

    while (parent <> nil) parent := parent.parent
      

  3.   

    procedure TForm1.TreeView1Click(Sender: TObject);
    var MyNode:TTreeNode;
    begin
        edit1.Text:='';
        if TreeView1.SelectionCount>0 then
        begin
            MyNode:=TreeView1.Selected;
            while MyNode.Parent<>nil do
            begin
                edit1.Text:='-->'+MyNode.Text+edit1.text;
                MyNode:=MyNode.Parent;
            end;
            edit1.Text:=MyNode.Text+edit1.Text;
        end;
    end;
      

  4.   

    Function TForm1.NodePath(Value:TTreeNode):String;
    begin
       if Value.Level=0 then
          Result:=Value.Text +'\'
       else
          Result:=NodePath(Value.Parent)+Value.Text +'\';
    end;
      

  5.   

    Function TForm1.NodePathEx(Value:TTreeNode):String;
    var
       testNode:TTreeNode;
    begin
       if Value=Nil then
       begin
          Result:='';
          Exit ;
       end;
       testNode:=Value;
       While (testNode.Level>0) do
       begin
          Result:=testNode.Parent.Text+'\'+Result;
          testNode:=testNode.Parent ;
       end;
       Result:=Result+Value.Text ;
    end;