es ist zwar ein uralter Thread, aber mein Vorschlag wäre das Ganze mit Hilfe von
IterateSubtree und Callback zu lösen:
Delphi-Quellcode:
function TForm1.GetNodeByAbsoluteIndex(idx: integer): PVirtualNode;
begin
// da IterateSubtree einen Pointer erwartet, den Integer
// mittels Ptr() als Pointer behandeln
result := VST.IterateSubtree(NIL, Callback, Ptr(idx));
end;
procedure TForm1.Callback(Sender: TBaseVirtualTree; Node: PVirtualNode;
Data: Pointer; var Abort: boolean);
begin
if Node <> NIL then
Abort := Sender.AbsoluteIndex(Node) = Integer(Data);
end;