Delphi-Quellcode:
TmpObj := Objects[i];
if Assigned(TmpObj) then
FreeAndNil(TmpObj);
Mal abgesehen davon, daß das if Assigned überflüssig ist, setzt FreeAndNil nur TmpObj auf nil, nicht aber Objects[I].
Strings haben eine implizite Referenzzählung und der Compiler behandelt sie bei Klassen und Records anders als andere Typen.