![]() |
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? |
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:
So richtig gefallen tut mir das aber irgendwie auch nicht. 8)
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 |
Re: MessageDlg und ESCAPE
Escape entspricht eben dem "Nein", obwohl "Abbrechen" sinnvoller wäre. Probier das mal mit einer Messagebox aus.
|
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! |
Re: MessageDlg und ESCAPE
Mit application.message klappt das gaaaanz hervorragend ;-)
Delphi-Quellcode:
[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
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; |
Re: MessageDlg und ESCAPE
Zitat:
|
Re: MessageDlg und ESCAPE
Kaum macht mans richtig, schon funktionierts!!!
(Altes chinesisches Sprichwort) @Luckie: Immer diese feinen Unterschiede zwischen MessageBox und MessageDlg!! |
Re: MessageDlg und ESCAPE
Kleiner Codeschnippsel:
Delphi-Quellcode:
ESC bewirkt hier wie gewünscht "Abbrechen" = mrCancel.... :gruebel:
CASE MessageDlg('Soll das Projekt gesichert werden?',mtConfirmation, mbYesNoCancel, 0) OF
mrYes : CanClose := ProjektSpeichern(); mrNo : CanClose := TRUE; END; Gruß Stephan |
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 ?
|
Re: MessageDlg und ESCAPE
Hi Hansa,
Zitat:
![]() Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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 by Thomas Breitkreuz