TreeNode.Data einfach, also warum dieser grosse Umweg über Items[] und Index? Schliesslich ist TreeNode doch der Knoten welcher, somit warum sich den Knoten nochmals aus der Liste holen, wenn man ihn doch schon in der Hand hat?
Delphi-Quellcode:
for k:= 1 to TreeNode.Level do
begin
TreeNode := TreeNode.Parent;
If Assigned(TreeNode) Then // safety first
edit1.Text := edit1.Text + ' ' + pNode_rec(TreeNode.Data)^.ID;
end;