:= Default(...)
überschreibt einfach alles mit Nullen.
Von den Zeiger-Typen werden ausschließlich Managed-Typen automatisch freigegeben. (Variant, LongStrings, Interfaces und dynamische Arrays)
Also erst das Objekt freigeben und danach den Record leeren.
mögliche Lösungen
* Object anstatt Record
* Interface statt Object
* dynamisches Array anstatt Liste/Dictionary (mit dem generischen TArray.BinarySearch kann man es wie eine sortierte Liste behandeln -> Suchen, sowie für's Insert)
*
Custom Managed Records
* ...
https://blogs.embarcadero.com/custom...o-delphi-10-4/
https://docwiki.embarcadero.com/RADS...anaged_Records