Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Form close - EINvalidPointer

  Alt 10. Apr 2019, 10:37
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>;

Geändert von haentschman (10. Apr 2019 um 10:47 Uhr)
  Mit Zitat antworten Zitat