function GetBranchNodes(TV: TTreeView; ndSelect: TTreeNode): string;
var
nd: TTreeNode;
begin
nd := ndSelect;
while nd.Level <> 0 do nd := nd.GetPrev;
while nd.HasChildren do
begin
Result := Result + nd.Text + '\';
nd := nd.GetNext;
end;
Result := Result + nd.Text
end;
procedure TForm1.TreeView1Click(Sender: TObject);
var
nd: TTreeNode;
P : TPoint;
begin
with TTreeView(Sender) do
begin
P := TreeView1.ScreenToclient(Mouse.CursorPos);
nd := TreeView1.GetNodeAt(P.X, P.Y);
if nd <> nil then
begin
Edit1.Text := '';
Edit1.Text := GetBranchNodes(TreeView1, nd);
end
end;
end;