![]() |
MessageDlg wahrscheinlich ganz einfach
Hi,
mal ne ganz dumme Frage. Ist wahrscheinlich ganz einfach, aber ich komm einfach nicht drauf. Ich will beim Schließen abfragen, ob man abspeichern will. Das wollte ich da so machen:
Delphi-Quellcode:
Aber das Problem ist das sich hierbei der Dialog im Falle von 'No' der Dialog zweimal öffnet.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin If MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0)=id_yes then //Speichern else if MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0)=id_no then close else CanClose:=False; end; Wie gesagt ist wahrscheinlich ganz einfach aber es will mir einfach nicht einfallen. Gruß Mariaki |
Re: MessageDlg wahrscheinlich ganz einfach
Einfach den Wert in einer Variablen speichern.
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var tmp : Byte; begin tmp := MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0) If tmp=id_yes then //Speichern else if tmp=id_no then close else CanClose:=False; end; |
Re: MessageDlg wahrscheinlich ganz einfach
Delphi-Quellcode:
vielleicht klappt es so besser:
if MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0)=id_no then
close // hier wird das Close Event wieder gestartet und dadurch die CloseQuery nochmals ausgeführt. else CanClose:=False; end;
Delphi-Quellcode:
Grüße
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin canClose:=true; If MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0)=id_yes then //Speichern else // die Fragestellung etwas überarbeitet if MessageDlg('Wollen sie die Rechnung wirklich nicht speichern?',mtConfirmation,mbYesNoCancel,0)=id_yes then close else CanClose:=False; end; Klaus |
Re: MessageDlg wahrscheinlich ganz einfach
Dann kommt der Dialog aber 2 mal, oder täusche ich mich?
[edit] Anderer Vorschlag:
Delphi-Quellcode:
[/edit]
CanClose := True;
case MessageDlg('Wollen sie die Rechnung speichern?',mtConfirmation,mbYesNoCancel,0) of ID_YES: Speichern; ID_CANCEL: CanClose := False; end; |
Re: MessageDlg wahrscheinlich ganz einfach
Zitat:
Grüße Klaus |
Re: MessageDlg wahrscheinlich ganz einfach
Ich hatte Dich gemeint, aber Du hast ja bereits editiert. Wobei mich eine nochmalige Abfrage als Anwender nerven würde, aber das muss ja jeder selber wissen :zwinker:
|
Re: MessageDlg wahrscheinlich ganz einfach
Zitat:
Grüße Klaus |
Re: MessageDlg wahrscheinlich ganz einfach
Jo danke für die Antwort.. ich dachte immer integer wären nur Zahlen aber das zählt ja auch dazu.
|
Re: MessageDlg wahrscheinlich ganz einfach
Kannst du bitte dem Beitrag einen aussagekräftigen Titel geben? :)
|
Re: MessageDlg wahrscheinlich ganz einfach
Zitat:
MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 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