Moin...
Zitat:
Also das Ziel bei einer TObjectList ist doch das die Items automatisch freigegeben werden wenn der owner auf true ist.
Diese Aussage ist falsch.
Zum Verständnis...Entweder die Objektliste
oder der Owner gibt den Frame frei.
Delphi-Quellcode:
// 1. Variante
FrmPerson := TFrmPerson.Create(nil); // Owner hier auf nil
PersonList := TObjectList<TfrmPerson>.Create(True); // bleibt
// 2. Variante
FrmPerson := TFrmPerson.Create(self); // Owner bleibt
PersonList := TObjectList<TfrmPerson>.Create(False); // heißt, daß die Liste ihre Objekte nicht selbst freigibt
Delphi-Quellcode:
PersonList := TObjectList<TfrmPerson>.Create(True);
PersonList.Free;
Erzeugen und freigeben der Liste bitte im FormCreate/FormDestroy. Da sind sie besser aufgehoben.
eine Bitte:
Keine globalen Variablen.
Delphi-Quellcode:
var
PersonList : TObjectList<TfrmPerson>;
besser:
Delphi-Quellcode:
TfrmAnsicht = class(TForm)
private
FPersonList : TObjectList<TfrmPerson>;