![]() |
MessageDlg - Rückgabewert überprüfung läuft schief ;(
Habe im OnClose-Event eine Abfrage über einen MessageDlg ... der Abfragen soll ob das Programm beendet werden soll oder nicht.
Wenn "ja" gedrückt wurde, soll das Programm beendet werden ... Wenn "nein" gedrückt wurde, soll nichts geschehen ... Ich mach das ganze über die Close-Actions ... mein Code sieht folgendermaßen aus
Delphi-Quellcode:
und so ruf ich dass ganze auf ...
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin { Sicherheitsabfrage ob Programm beendet werden soll } if MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin caFree; end else begin caNone; end; end;
Delphi-Quellcode:
Nun ... egal was "drücke" ... das Programm wird immer beendet ... das ganze ist insofern merkwürdig ...
procedure TfMain.btnCloseClick(Sender: TObject);
begin { Programm schliessen } fMain.Close; end; dass ich diese Code-Zeile bestimmt schon 100x in anderen Programmen ausgeführt habe ... und da hats korrekt funktioniert :( Oder bin ich einfach zu doof und hab was übersehen?! Danke für eure Hilfe ;) Euer f4k3 |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
Hi!
Müsstes du cafree und canone nicht der Var. action zuweisen? Ciao, Frederic |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
Zitat:
Owman ... korrekt ;) es müsste natürlich lauten ...
Delphi-Quellcode:
Immer nachm Urlaub :P xD ... Danke für die schnelle Antwort ;)
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin { Sicherheitsabfrage ob Programm beendet werden soll } if MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Action := caFree; end else begin Action := caNone; end; end; |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
im übrigen kannst du dir das caFree sparen da dies die Standardaction des Hauptforms ist:
Delphi-Quellcode:
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin { Sicherheitsabfrage ob Programm beendet werden soll } if (MessageDlg('Programm beenden?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes) then begin Action := caNone; end; end; |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
Zitat:
Hätt ich auch selbst drauf kommen können :lol: |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
Wäre für das ganze OnCloseQuery nicht angebrachter :mrgreen:
Tobi |
Re: MessageDlg - Rückgabewert überprüfung läuft schief ;(
Ich habe auch immer das OnClose-Ereignis verwendet und habe darin nie Nachteile gesehen eher Vorteile da man einer größere Auswahl an möglichen Aktionen hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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