Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TObjectList Object soll sich selbst löschen (https://www.delphipraxis.net/155344-tobjectlist-object-soll-sich-selbst-loeschen.html)

stahli 19. Okt 2010 22:30

AW: TObjectList Object soll sich selbst löschen
 
FreeAndNil habe ich zum Testen genutzt, damit auch der Pointer auf nil gesetzt wird (ist ja "extremer" beim Fehlertest).

Zugriff auf "Self" bezog ich auf den Code innerhalb des TButton (der Code, der noch nach dem Aufruf der Ereignisbehandlung folgt, also MINDESTENS "end;").

Zitat:

Wie gesagt, einen Button in seinem OnClick freizugeben ist kein Problem.
Es sei denn, eine Komponente würde in ihrer Methode Click nach dem Aufruf einer zugewiesenen Ereignisbehandlung noch einmal auf ihre Daten zugreifen:
Delphi-Quellcode:
procedure TTestControl.Click;
begin
  if Assigned(FOnClick) then
    FOnClick(Self)
  Caption := 'ERROR if Self = nil'
end;

himitsu 20. Okt 2010 06:39

AW: TObjectList Object soll sich selbst löschen
 
Was aber bei einem TButton nicht der Fall ist. :angle2:

Sir Rufo 20. Okt 2010 07:12

AW: TObjectList Object soll sich selbst löschen
 
Zitat:

Zitat von himitsu (Beitrag 1056617)
Was aber bei einem TButton nicht der Fall ist. :angle2:

Na dann wollen wir mal hoffen, dass das auch so bleibt, sonst funktioniert der Code nur bis Delphi 20xx und dann kracht es.

stahli 20. Okt 2010 08:11

AW: TObjectList Object soll sich selbst löschen
 
In einem solchen Fall würde ich es vorziehen, die Komponente lediglich unsichtbar zu machen, in eine Löschliste aufzunehmen und deren Inhalte dann bei Gelegenheit (Timer/OnIdle) aufzulösen.

Sir Rufo 20. Okt 2010 08:23

AW: TObjectList Object soll sich selbst löschen
 
Eine Möglichkeit ist das auch, nur bevorzuge ich aber lieber Push als Poll.

Und die PostMessage Variante ist doch sehr charmant.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz