es geht evtl. auch einfacher. wenn man die ganzen Daten sowieso schon aufbereitet hat, kann man die PNodeData-Sache weg lassen.
Einfaches Beispiel mit einer StringList, geht dann natürlich auch mit TObjectList und allen anderen List-Typen
Delphi-Quellcode:
vst.RootNodeCount := myStringList.Count;
...
procedure TVGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
begin
CellText := myStringList[Node.Index];
end;