Iterativ anstatt rekursiv ist eh oftmals angenehmer
Delphi-Quellcode:
function GetNodePath(aNode: TTreenode): string;
begin
Result := '';
while Assigned(aNode) do begin
Result := aNode.Text + '\' + Result;
aNode := aNode.Parent;
end;
end;
bzw., wenn jemanden das erste \ stört ... könnte man auch mit IF/IfThen garnicht erst einfügen, anstatt nachträglich zu löschen, aber bin zu faul
Delphi-Quellcode:
end;
Delete(Result, Length(Result), 1); // oder SetLength(Result, Length(Result) - 1);
end;
oder halt
Delphi-Quellcode:
function GetNodePath(aNode: TTreenode): string;
begin
Result := aNode.Text;
aNode := aNode.Parent; // oder mit eigener lokaler Variable, anstatt aNode
while Assigned(aNode) do begin
Result := aNode.Text + '\' + Result;
aNode := aNode.Parent;
end;
end;