Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman
Online

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

AW: Ungültige Zeigeroperation

  Alt 16. Mai 2019, 06:29
Zitat:
Muss ich die TCallInstance freigeben, ich dachte bei einer lokal erstellen Variable/Klasse passiert das nach Beendigung automatisch. Gilt das nicht für lokale Klassen?
Grundsatz: Alles was du erstellst, mußt du freigeben. Objektlisten/ObjektDictionarys erleichtern dir das mit dem Freigeben.

Objektlisten: Liste := TObjectList<TBlubb>.Create(True); // True heißt, die Liste gibt die Objekte frei
ObjektDictionary: Dictionary := TObjectDictionary<string, TBlubb>.Create([doOwnsValues]); // doOwnsValues heißt, das Dictionary gibt die Objekte frei

Hmm...eigentlich hättest du ohne doOwnsValues nur MemoryLeaks haben müssen. Das mit dem Clear vor dem Free muß ich mal ausprobieren...

MemoryLeaks anzeigen:
...in die DPR aufnehmen vor Application.Initialize:
ReportMemoryLeaksOnShutdown := True;

Geändert von haentschman (16. Mai 2019 um 06:38 Uhr)
  Mit Zitat antworten Zitat