![]() |
AW: Eigene Komponente mit OnClose-Event
Zitat:
Es gibt hier nur eine Regel, die man beachten muss
Delphi-Quellcode:
oder auf deutsch:
if not( csDestroying in Application.ComponentState ) then
ShowMessage( 'Ich bin dann mal weg!' ); Wenn die Anwendung selber den Status Zerstören hat, dann darf ich bestimmte Dinge nicht mehr machen (wie. z.B.
Delphi-Quellcode:
aufrufen).
ShowMessage
|
AW: Eigene Komponente mit OnClose-Event
ShowMessage wird hier wohl über CreateDialogIndirect erstellt und das reagiert auf Application.Terminated und schießt sich sofort wieder, da es so eine VCL-TForm ist.
(altes Delphi oder altes Windows) |
AW: Eigene Komponente mit OnClose-Event
@Sir Rufo, das ist mir schon klar. Ich bin halt davon ausgegangen, dass das BeforeDestruction ausgeführt, bevor irgendwas anderes tatsächlich zerstört wird. Dies ist aber offensichtlich eine falsche Annahme gewesen. Asche auf mein Haupt.
Als Nutzer einer Komponente würde es mich allerdings schon irritieren, dass ich erst prüfen muss, ob ich in der Anwendung überhaupt ein ShowMessage aufrufen darf, wenn das gewünschte Ereignis abgearbeitet wird. @himitsu: Es macht zumindest den Eindruck, dass es so abläuft. |
AW: Eigene Komponente mit OnClose-Event
Zitat:
Zitat:
|
AW: Eigene Komponente mit OnClose-Event
@Jasocul
Was glaubst du wohl, wieviele Nutzer von Kettensägen überrascht geschaut haben, als sie den Ast abgesägt haben auf dem sie selber gerade saßen? Egal was man hat (Kettensäge, Komponente, ...): Man kann es richtig oder falsch verwenden. Und das oben geschilderte Verhalten ist kein Alleinstellungsmerkmal der Kettensäge. |
AW: Eigene Komponente mit OnClose-Event
@Mikkey:
Ja, ich weiß das. Aber die Kollegen, die die Komponente nutzen, sehen ja nur, dass es ein Event gibt, das sie benutzen können. Was dahinter steckt, ist erstmal uninteressant. Wenn ich in so einem Event eine Nachricht ausgeben möchte, sollte das auch passieren. @Sir Rufo: Natürlich muss man aufpassen, dass das, was man benutzt, auch da ist. Aber bisher war es bei mir bisher nicht erforderlich, dass ich prüfen muss, ob die Anwendung noch "existiert", in der ich den Code ablaufen lasse. |
AW: Eigene Komponente mit OnClose-Event
Zitat:
Deine Komponente stellt doch nur sicher, dass der Event zum angegeben Zeitpunkt aufgerufen wird - Punkt. Und das macht die doch auch. Was willst du also noch? Im Übrigen habe ich festgestellt, dass auch der Befehl
Delphi-Quellcode:
nicht korrekt ausgeführt wird.
ÜbernehmeDieWeltherrschaft();
Es liegt nicht in der Verantwortlichkeit der Komponente, ob der Eventhandler-Code korrekt abgearbeitet wird, sondern ausschließlich darin, dass der Event aufgerufen wird, wie vereinbart. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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