根节点
┗节点1
┗节点2
  ┗节点3
  ┗节点4
 
指定一个节点取所有他的父节点名称加本节点名称
如:传入节点2 返回字符串为:根节点-节点2
    传入节点3 返回字符串为:根节点-节点2-节点3
请问这个函数该怎么写
function GetStr(TreeNode:TTreeNode):string
begin???
end

解决方案 »

  1.   

    不用递归,用循环也可以:var
      TreeNode: TTreeNode;
    begin
      TreeNode := TreeView.Selected;
      while Assigned(TreeNode) do
      begin
        Memo.Lines.Add(TreeNode.Text);
        TreeNode := TreeNode.Parent;
      end;
    end;
      

  2.   

    顶楼上我晚了一步。但既然写了代码,不贴出来不甘心.....
    function GetStr(Node: TTreeNode): string;
    begin
      Result := '';
      if Node = nil then Exit;
      Result := Node.Text;
      while Node.Parent <> nil do begin
        Node := Node.Parent;
        Result := Node.Text + ' - ' + Result;
      end;
    end;procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      Caption := GetStr(TreeView1.Selected);
    end;