Delphi-PRAXiS

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 liefert falsches Ergebnis (https://www.delphipraxis.net/61130-messagedlg-liefert-falsches-ergebnis.html)

marc1234 17. Jan 2006 12:49


MessageDlg liefert falsches Ergebnis
 
Hallo ,

folgender Code funktioniert bei mir nicht :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  nResult : integer;
begin

  nResult := MessageDlg('Änderungen speichern?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
  case nResult of
    mrYes:   ShowMessage('Yes');
    mrNo:    ShowMessage('No');
    mrCancel: ShowMessage('Cancel');
    else     ShowMessage(IntToStr(nResult));
  end;

end;
Wenn ich im Dialog auf 'Yes' drücke, dann ist der Returnwert 3 (mrAbort) und nicht 6, was mrYes entsprechen würde.
Wenn ich auf 'No' drücke, dann wird 4 (idRetry) zurückgegeben und nicht - wie erwartet - 7 (idNo).
Nur der Cancel-Button funktioniert.

Das Formular ist ein MDIClient.

Kann mir das jemand erklären ?

Gruß
Marcus

jim_raynor 17. Jan 2006 12:51

Re: MessageDlg liefert falsches Ergebnis
 
Sicher, dass du auch die MessageDlg aus der Unit Dialogs nimmst? Versuchs mal mit Dialogs.MessageDlg.

marc1234 17. Jan 2006 13:03

Re: MessageDlg liefert falsches Ergebnis
 
Hallo Christian,

Du hattest Recht. In der Unit des Formulars war die Unit QDialogs eingebunden - es wurde also die falsche MsgDialog-Funktion verwendet.

Danke für die schnelle Hilfe.

Gruß
Marcus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.

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