Zitat von
hoika:
Einspruch.
Lese ich mir die Hilfe zu Finalize durch,
macht sie genau so, was sie soll.
Aber ein
Entries.Dispose;
geht hier doch auch ?
Noch mal die Frage an den TE,
hast du Free durch Destroy ersetzt ?
1. Finalize(Array) fässt keine Zeiger an, die in dem Array abgelegt sind. Das steht so im Quellcode. Finalize hier aufzurufen, ist auch überflüssig, weil das Delphi macht. Wenn man nicht mit Referenzzählern rumspielt, muss man nie Finalize selbst aufrufen.
2. 'Entries.Dispose' geht nicht, weil 'Entries' kein Zeiger ist (nun, eigentlich schon, aber nicht offiziell)
3. Free ist nur sicherer als destroy, macht aber nicht mehr. Also würde es ein Speicherleck nicht vermeiden.
Wenn in dem dynamischen Array wirklich Klassen abgelegt sind, dann muss man die einzelnen Elemente auch extra freigeben. Oder man verwendet eine TObjectList.