Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Grundlegende Frage zum Thema OOP

  Alt 14. Mai 2007, 22:04
Zitat von Mussi0:
Delphi-Quellcode:
    //der ObjectList hinzufügen
    objField.Add(objCell);
    //objCell zerstören
    objCell.Destroy;
Das Destroy darfst du hier nicht aufrufen. Du erzeugst das Objekt, Füllst es mit werten, fügst es der Objectlist zu und dann zerstörst du es.

Mit objField.Add(objCell); fügst du nur den Pointer/Zeiger des Objektes der Liste zu. es wird keine Kopie angelegt. Wenn du das Objekt aber zerstörst, dann zeigt der Pointer, den du übergeben hast in's leere.

Also solltest du den Destroy weglassen.

Damit du aber keinen Speicherleck bekommst, musst du dafür sorgen, daß die erzeugen Objekte zum "richtigen" Zeitpunkt freigiebst. Das kann dir aber auch die ObjectList abnehmen. Einfach OwnsObjects der Objectlist auf True setzen.



Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat