Hallo Thorsten,
mir würde ein einziger vorgezogener Test auf Assigned(node) genügen:
Delphi-Quellcode:
function RootNode(node: TTreeNode): TTreeNode;
begin
if Assigned(node) then
while Assigned(node.Parent) do
node := node.Parent;
Result := node;
end;
Freundliche Grüße