Ich würde das ganze mit den Pointern und Records lassen und lieber Klassen dranhängen. In den aktuellen Versionen des VST geht es auch generisch:
Delphi-Quellcode:
type
TTest = class
private
FValue: Integer;
procedure SetValue(const Value: Integer);
public
constructor Create(const AValue: Integer);
property Value: Integer read FValue write SetValue;
end;
// hinzufügen
VirtualStringTree1.AddChild(nil, TTest.Create(15));
// OnGetText
CellText := IntToStr(Node.GetData<TTest>.Value);