AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XE5 Firemonkey MessageBox/MessageDlg

Ein Thema von Nils S. · begonnen am 12. Apr 2014 · letzter Beitrag vom 11. Jul 2019
Antwort Antwort
Nils S.

Registriert seit: 10. Apr 2014
36 Beiträge
 
Delphi XE5 Professional
 
#1

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 21. Apr 2014, 11:35
Ich habe nun noch eine Frage zu den MessageDlg in Firemonkey.
Wie funktioniert das mit case of?

In VCL habe ich es beispielsweise so gemacht:
Delphi-Quellcode:
case Application.MessageBox('Es wurden bereits Eingaben für einen' + #13 +
                                'neuen Benutzer gemacht.' + #13 +
                                'Sollen diese verworfen werden?',
                                MB_ICONWARNING or
                                MB_YESNOCANCEL or
                                MB_DEFBUTTON3) of
      IDYES:
      begin
        //mach was
      end;
      IDNO:
      begin
        //mach was anderes
      end;
      IDCANCEL:
      begin
        //mach noch was anderes
      end;
    end;
Wenn ich es in Firemonkey so mache:

Delphi-Quellcode:
case MessageDlg
        ('Es wurden bereits Eingaben für einen neuen Benutzer vorgenommen.' + #13 +
        'Sollen diese verworfen werden?',
        TMsgDlgType.mtConfirmation,
        [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo, TMsgDlgBtn.mbCancel],
        0,
        TMsgDlgBtn.mbCancel) of
        TMsgDlgBtn.mbYes:
        begin
          //mach was
        end;
        TMsgDlgBtn.mbNo:
        begin
          //mach was anderes
        end;
        TMsgDlgBtn.mbCancel:
        begin
          //mach noch was anderes
        end;
Dann kommt beim Kompilieren die Fehlermeldung inkompatible Typen, Integer und TMsgDlgButton.
Wenn ich nun bei den verschiedenen Cases die Werte der Buttons, also 0, 1 und 3 für Yes, No und Cancel nehme, kommt beim Kompilieren zwar keine Fehlermeldung, aber der Code hat zur Laufzeit auch keine Funktion.

Wie bringe ich das zum Laufen?

Ok, bitte einfach die Frage vergessen, muss in dem Cases natürlich ein IDYes, IDNo und IDCancel verwenden...

Geändert von Nils S. (21. Apr 2014 um 12:19 Uhr) Grund: Selbsterklärend....
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 21. Apr 2014, 11:52
Hast du schon in die Dokumentation geschaut?

Delphi-Referenz durchsuchenFMX.Dialogs.MessageDlg

Anscheinend nicht
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.535 Beiträge
 
Delphi 12 Athens
 
#3

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 21. Apr 2014, 13:12
Ich würde dort auch mal nach den ID-Konstanten suchen, oder nach den "neueren" mr-Konstanten.
(eventuell sind die Konstanten auch in einer Klasse/Record gekapselt)

MessageButton zum Auswählen der anzuzeigenden Buttons und MessageResult ModalResult als Ergebnis was gedrückt wurde. (ein Dialog ist eine modale Form)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Apr 2014 um 14:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 21. Apr 2014, 13:30
Die Online-Hilfe sollte auf XE6 verweisen oder einfach auf die Angabe der Version verzichten, dann kommt immer die aktuellste Dokumentation

XE6: http://docwiki.embarcadero.com/Libra...ogs.MessageDlg
oder (immer aktuell): http://docwiki.embarcadero.com/Libra...ogs.MessageDlg

da stehen dann auch die ModalResult-Konstanten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Nils S.

Registriert seit: 10. Apr 2014
36 Beiträge
 
Delphi XE5 Professional
 
#5

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 22. Apr 2014, 15:21
Ja, ich habe meinen Beitrag ja schon editiert, dass es logisch ist, dass ich IDYes, IDNo und IDCancel verwenden muss. Damit klappt das natürlich auch ohne Probleme.

Danke trotzdem.
  Mit Zitat antworten Zitat
Nils S.

Registriert seit: 10. Apr 2014
36 Beiträge
 
Delphi XE5 Professional
 
#6

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 27. Mai 2014, 20:51
Hallo zusammen,

nach einiger Zeit habe ich nun zu dem MessageDlg nochmal ein Problemchen.
Dieses sieht wie folgt aus:
Delphi-Quellcode:
  case MessageDlg('Text.',
    mtWarning,
    [mbYes, mbNo, mbHelp],
    0,
    mbNo) of
    idYes:
    begin
      {Mach was.
       Funktioniert ohne Probleme.}

    end;
    idHelp:
    begin
      {Mach was.
       Funktioniert nicht...}

    end;
  end;
Wenn ich den mbHelp zum Beispiel gegen mbIgnore oder mbCancel oder irgendeinen beliebigen anderen Button tausche und die idHelp dementsprechend natürlich auch,
fuktioniert auch dieser Fall.

Muss man bei einem mb/idHelp etwas besonderes machen oder berücksichtigen?

Geändert von Nils S. (27. Mai 2014 um 20:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.535 Beiträge
 
Delphi 12 Athens
 
#7

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 27. Mai 2014, 20:53
Ich sehn da kein Problem.

[edit]
Selbst da nicht, als vorhin noch ein Code zu sehen war.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Nils S.

Registriert seit: 10. Apr 2014
36 Beiträge
 
Delphi XE5 Professional
 
#8

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 27. Mai 2014, 21:01
Da hat die Tasenkombination Tab-->Enter den Beitrag etwas zu früh abgeschickt...
jetzt habe ich das Problem oben vernünftig gepostet.

  Mit Zitat antworten Zitat
attila71

Registriert seit: 21. Mär 2018
1 Beiträge
 
#9

AW: XE5 Firemonkey MessageBox/MessageDlg

  Alt 11. Jul 2019, 13:25
MessageDlg('ANNULLO L''OPERAZIONE ?', System.UITypes.TMsgDlgType.mtInformation,
[
System.UITypes.TMsgDlgBtn.mbYes,
System.UITypes.TMsgDlgBtn.mbNo,
System.UITypes.TMsgDlgBtn.mbCancel
], 0,
procedure(const AResult: System.UITypes.TModalResult)
begin
case AResult of
mrYES:
BEGIN
// PREMUTO SI

END;
mrNo:
// PREMUTO NO

mrCancel:
// PREMUTO ANNULLA NON FACCIO NULLA
;
end;
end);
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 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