Function GetNodePath(Node: TTreeNode): WideString;
Var
  aTempNode: TTreeNode;
  aPathList: TStringList;
Begin
  aPathList := TStringList.Create;
  aPathList.Delimiter := '\';
  Try
    aTempNode := Node;
    While Assigned(aTempNode) Do
    Begin
      aPathList.Insert(0, aTempNode.Text);
      aTempNode := aTempNode.Parent;
    End;
  Finally
    Result := aPathList.DelimitedText;
    FreeAndNil(aPathList);
  End;
End;Procedure TForm1.Button1Click(Sender: TObject);
Begin
  Application.MessageBox(PChar(GetNodePath(self.TreeView1.Selected)), '', 64);
End;