Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MessageDlg und ESCAPE (https://www.delphipraxis.net/30235-messagedlg-und-escape.html)

UweR 22. Sep 2004 13:15


MessageDlg und ESCAPE
 
Hallo Leute,

ich habe ein kleines Problem. Ich will beim Verlassen meines Prog die Wahl zwischen dem Speichern der Date, dem verlassen ohne Speichern und dem Abbruch des Vorgangs (nicht verlassen) lassen. Dazu mache ich MessageDlg auf und übergebe ihm die Buttons. Das war solange mal wunderbar bis jemand mal auf die Idee gekommen ist statt eines Buttons ESCAPE zu drücken. Das führt dazu das ich als Result mrNo zurückkriege und alle Eingaben futsch sind weil ich dann nicht speichere. Fällt irgendeinem von euch dazu eine Lösung ein bzw. eine Möglichkeit das zu verhindern. Gibts in MessageBox irgendwelche Möglichkeiten?

Hansa 22. Sep 2004 13:20

Re: MessageDlg und ESCAPE
 
Gibts sowas ? :shock: Genau dasselbe Problem ist mir vor 1 St. aufgefallen. :lol: Also ich habe es mal voerst so gemacht :

Delphi-Quellcode:
  if MessageDlg('Alles speichern ?', mtInformation, [mbYes, mbNo], 0) = mrNo then begin
    if MessageDlgPos('Nicht speichern ? Sind Sie sicher ? ',mtInformation,[mbYes,mbNo],0,200,200) = mrYes then
      EingDM.ReadTransaction.Rollback
So richtig gefallen tut mir das aber irgendwie auch nicht. 8)

Luckie 22. Sep 2004 13:25

Re: MessageDlg und ESCAPE
 
Escape entspricht eben dem "Nein", obwohl "Abbrechen" sinnvoller wäre. Probier das mal mit einer Messagebox aus.

UweR 22. Sep 2004 14:01

Re: MessageDlg und ESCAPE
 
@Luckie
Gegenbeispiel (vom Kunden der mein Prog nutzt):

Öffne mal Word, tippe was ein und schließe Word. Dann in der erscheinenden MessageBox mal ESCAPE drücken. Die Messagebox geht auf Abbruch und nicht auf Nein. Ich traue ja BigBill ja viel zu aber das kann kein Feature sein was nur Word hat, mal ganz davon abgesehen das das nicht nur Word sondern auch die Delphi-IDE kann!

@Hansa
So krieg ich das meinem Kunden leider nicht verkauft. Dann schon lieber ne eigene MessageBox basteln!

tuxhol 22. Sep 2004 14:06

Re: MessageDlg und ESCAPE
 
Mit application.message klappt das gaaaanz hervorragend ;-)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  antwort : integer;
begin
  antwort := application.messagebox('Ja oder Nein?','Frage',32+3);
  if antwort=idyes then
    begin
      showmessage('Antwort war ja / Speichern');
    end
  else
  if antwort=idno then
    begin
      showmessage('Antwort war nein / Nicht Speichern');
    end
  else showmessage('Antwort war Abbrechen');
end;
[edit=sakura] [delphi]Tags Mfg, sakura[/edit]

Luckie 22. Sep 2004 14:09

Re: MessageDlg und ESCAPE
 
Zitat:

Zitat von UweR
@Luckie
Gegenbeispiel (vom Kunden der mein Prog nutzt):

Öffne mal Word, tippe was ein und schließe Word. Dann in der erscheinenden MessageBox mal ESCAPE drücken. Die Messagebox geht auf Abbruch und nicht auf Nein. Ich traue ja BigBill ja viel zu aber das kann kein Feature sein was nur Word hat, mal ganz davon abgesehen das das nicht nur Word sondern auch die Delphi-IDE kann!

Sag ich doch, das ist nämnlich eine Messagebox und keine Eigen-VCL-Kreation von Borland.

UweR 22. Sep 2004 14:23

Re: MessageDlg und ESCAPE
 
Kaum macht mans richtig, schon funktionierts!!!
(Altes chinesisches Sprichwort)

@Luckie:
Immer diese feinen Unterschiede zwischen MessageBox und MessageDlg!!

Steve 22. Sep 2004 14:29

Re: MessageDlg und ESCAPE
 
Kleiner Codeschnippsel:
Delphi-Quellcode:
CASE MessageDlg('Soll das Projekt gesichert werden?',mtConfirmation, mbYesNoCancel, 0) OF
  mrYes : CanClose := ProjektSpeichern();
  mrNo : CanClose := TRUE;
END;
ESC bewirkt hier wie gewünscht "Abbrechen" = mrCancel.... :gruebel:

Gruß
Stephan

Hansa 22. Sep 2004 16:17

Re: MessageDlg und ESCAPE
 
mbYesNoCancel, ja da war doch was. :thumb: Nur noch eine Frage : Wo kommt das CanClose her und wie wirkt es sich aus ?

alcaeus 22. Sep 2004 16:25

Re: MessageDlg und ESCAPE
 
Hi Hansa,

Zitat:

Zitat von Hansa
Wo kommt das CanClose her und wie wirkt es sich aus ?

der Code steht wahrscheinlich im Delphi-Referenz durchsuchenOnCloseQuery des Forms, damit kann man steuern ob das Formular geschlossen werden kann. Bin mir jetzt aber nicht ganz sicher.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 Uhr.
Seite 1 von 2  1 2      

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