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 schließen (https://www.delphipraxis.net/70467-messagedlg-schliessen.html)

Smeivel 30. Mai 2006 20:04


MessageDlg schließen
 
Hallo erst mal an alle!
Ich habe zuerst mal ein Problem mit dem Message Dialog und zwar möchte ich den messageDlg beenden können wenn ich auf NEIN klicke, doch hab ich nirgendwo einen passenden quellcode gefunden der einen MessageDlg schließen kann. Wenn ich auf ja klicke soll das ganze Programm geschlossen werden, doch passiert das mit folgendem code wenn ich auf NEIN klicke :gruebel: , dies sollte doch normalerweise andersherum sein.
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Case MessageDlg('sicher?',mtconfirmation,[mbYes,mbNO,mbCancel],0) Of
       mrYes   : Form1.Close;
       mrNo    : //???;
   end;
end;

toms 30. Mai 2006 20:06

Re: MessageDlg schließen
 
Hallo,


Was passiert, wenn du der Action etwas zuweist?

Martin K 30. Mai 2006 20:11

Re: MessageDlg schließen
 
Hi,

nimm mal OnCloseQuery anstatt OnClose.
Mit CanClose kannst Du dann festlegen, ob die Form geschlossen werden soll oder nicht:

Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := MessageDlg('sicher?',mtconfirmation,[mbYes,mbNO,mbCancel],0) = mrYes;
end;

Cyberbob 30. Mai 2006 20:13

Re: MessageDlg schließen
 
Ist eine möglichkeit. Mit OnClose gehts aber auch! Etwa so:

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   if MessageDlg('sicher?',mtconfirmation,[mbYes,mbNO,mbCancel],0) = mrNo then Action := caNone;
end;
So wird das Programm nur geschlossen, wenn auf Ja geklickt wird.

faux 30. Mai 2006 20:17

Re: MessageDlg schließen
 
Zitat:

Zitat von Cyberbob
Ist eine möglichkeit. Mit OnClose gehts aber auch!

Wieso sollte man absichtlich ein anderes Event benutzen wenn man es mit einem extra dafür geschaffenen Event auch lösen kann? :gruebel:

Grüße
Faux

Hawkeye219 30. Mai 2006 20:17

Re: MessageDlg schließen
 
Zitat:

Zitat von Cyberbob
So wird das Programm nur geschlossen, wenn auf Ja geklickt wird.

...oder der Benutzer den Dialog abbricht.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:38 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