Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.187 Beiträge
 
Delphi 12 Athens
 
#2

AW: TObjectList Object soll sich selbst löschen

  Alt 19. Okt 2010, 17:56
(Sender as TButton).Free; oder einfach nur Sender.Free; funktioniert und gibt das Objekt erfolgreich frei, auch wenn es am Ende eines Button-OnClick aufgerufen wird.

Der Button kennt aber die ObjektListe nicht, bzw. er weiß garnicht daß er in einer Drinsteckt, also kann er sich auch nicht selber aus soeiner Liste rauslöschen.
Das Entfernen aus der Objekliste mußt du also selber machen.

Du könntest dir auch eine eigene komponente von TButton ableiten, den Destructor überschreiben und darin den Button aus der entsprechenden Objektliste entfernen.

So oder so, wenn ein Objekt sich irgendwo rauslöschen soll, sobald es freigegeben wird, dann mußt du diesem die Objektliste bekannt machen (diese in einem Feld in dem Objekt speichern) und beim Freigeben des Objektes prüfen, ob da eine Objektliste eingetragen ist und wenn ja, dann wird das Objekt aus dieser Liste entfernt.
Im Gegenzug muß natürlich auch der Eintrag zurückgesetzt werden, wenn das Objekt aus der Liste entfernt wird, ohne es freizugeben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Okt 2010 um 17:59 Uhr)
  Mit Zitat antworten Zitat