Wie oben geschrieben gehe ich davon aus, dass das VST das jetzt übernimmt, da die ObjectList ja die Daten nicht mehr erbt.
Zumindest früher hat der VST das definitiv nicht von alleine gemacht.
IndexOf
ist nebenbei bemerkt keine sehr schnelle Operation und kann bei extrem vielen Nodes deine Performance schon ziemlich verschlechtern. Hat es irgendeinen Grund, warum du die Objekte überhaupt in einer
TObjectList
ablegst? Ich persönlich gehe immer so vor, dass ich beim Einfügen einer Node mein Datenobjekt/Datenrecord mit
Create
erstelle und zuweise. Im
OnFreeNode
hole ich mir dann mit
GetNodeData
den direkten Zeiger auf das Objekt und gebe es dort entsprechend mit
Free
wieder frei.
Oft bietet es sich sogar an mit Records zu arbeiten. Dort musst du zu Begin einmal
NodeDataSize := SizeOf(TDataRecord)
setzen. In diesem Falle verwaltet der VST den Speicher tatsächlich vollkommen von alleine. Lediglich ein
Finalize
im
OnFreeNode
ist teilweise erforderlich (wenn dein Records Strings, Interfaces oder andere managed types enthält).