AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TObjectList Object soll sich selbst löschen

Ein Thema von Culxxaw · begonnen am 19. Okt 2010 · letzter Beitrag vom 20. Okt 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: TObjectList Object soll sich selbst löschen

  Alt 19. Okt 2010, 22:16
Nachfolgendes Projekt macht bei mir keine Probleme.
Wenn nicht, gibt es keine Probleme.
Auch wenn FreeAndNil unnötig ist, da der Parameter Sender eh nicht wiederverwendet, bzw. nachfolgen genutzt wird. (.Free würde reichen, aber schlimm isses nicht)

Wichtig ist wohl nur, ob der Komponentencode nochmal auf "Self" zugreift.
Self ist in diesem Fall die Form.

PS: In Ereignisprozedur wie OnClose die Form freizugeben ist da schon schwerer.

Zitat:
Irgendwie fehlt mir das Application da (gut das ist immer irgendwo)
Application.Run; (siehe .dpr), bzw. genauer die TApplication.ProcessMessage behandelt die Window-Messages, und von dort aus wird letztendlich dein procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP; aufgerufen.




Wie gesagt, einen Button in seinem OnClick freizugeben ist kein Problem.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Okt 2010 um 22:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TObjectList Object soll sich selbst löschen

  Alt 19. Okt 2010, 22:30
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;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TObjectList Object soll sich selbst löschen

  Alt 20. Okt 2010, 06:39
Was aber bei einem TButton nicht der Fall ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TObjectList Object soll sich selbst löschen

  Alt 20. Okt 2010, 07:12
Was aber bei einem TButton nicht der Fall ist.
Na dann wollen wir mal hoffen, dass das auch so bleibt, sonst funktioniert der Code nur bis Delphi 20xx und dann kracht es.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.355 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TObjectList Object soll sich selbst löschen

  Alt 20. Okt 2010, 08:11
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TObjectList Object soll sich selbst löschen

  Alt 20. Okt 2010, 08:23
Eine Möglichkeit ist das auch, nur bevorzuge ich aber lieber Push als Poll.

Und die PostMessage Variante ist doch sehr charmant.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz