Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MessageDlg in OnDestroy des Hauptformulars (https://www.delphipraxis.net/149527-messagedlg-ondestroy-des-hauptformulars.html)

MatthiasR 23. Mär 2010 14:55


MessageDlg in OnDestroy des Hauptformulars
 
Komisches Phänomen: wenn ich einen MessageDlg-Aufruf in das OnDestroy-Ereignis des Hauptformulars meiner Anwendung einbaue, wird der immer "übersprungen". Hab das gerade mal anhand einer kleinen Testapplikation ausprobiert, da ist es genauso. Einfach ein neues Projekt erzeugt und in das OnDestroy-Event des Formulars einen MessageDlg-Aufruf eingebaut. Der Dialog blitzt zur Laufzeit zwar kurz auf, bleibt aber nicht stehen, sondern die Anwendung schließt sich unmittelbar darauf automatisch von allein, und mit ihr natürlich der MessageDlg.

Frage daher: woran liegts?

Luckie 23. Mär 2010 15:02

Re: MessageDlg in OnDestroy des Hauptformulars
 
Keine Ahnung. Aber für so was nimmt man entweder das Ereignis OnClose oder OnCloseQuery.

Bernhard Geyer 23. Mär 2010 15:03

Re: MessageDlg in OnDestroy des Hauptformulars
 
Leg den Dialog ins OnQueryClose. OnDestroy ist zu spät um einen solchen Dialog für das Hauptfenster zu unterstützen.

sirius 23. Mär 2010 15:04

Re: MessageDlg in OnDestroy des Hauptformulars
 
Nach OnClose wird Application.Terminate aufgerufen, damit wiurd Application.Fterminate auf True gesetzt. Und genau ab jetzt schließt sich jedes modale Fenster mir mrCancel selbst.

MatthiasR 23. Mär 2010 15:10

Re: MessageDlg in OnDestroy des Hauptformulars
 
Alles klar. Danke! Wird dann ins OnClose verfrachtet :)

Sir Rufo 23. Mär 2010 15:53

Re: MessageDlg in OnDestroy des Hauptformulars
 
MessageDlg in den Ereignissen OnCreate, OnDestroy werden bis Delphi 2007 nicht korrekt abgearbeitet.

Für Delphi 2007 gibt es auf jeden Fall ein Update, welches dieses behebt

Wurde hier schon mal besprochen: http://www.delphipraxis.net/internal...138217#1138217
(ok, da wurde das mit OnCreate behandelt, mit Delphi 2010 ist es aber auch im OnDestroy kein Problem)

Allerdings gehören solche Dialoge nicht in OnCreate oder OnDestroy, weil es an den Stellen
entweder zu früh oder zu spät ist :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 Uhr.

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