Autor Beitrag
juelin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP, Linux
D7 K3
BeitragVerfasst: Fr 12.07.19 11:22 
Hallo Leute,
ich schreibe gerade mein erstes Programm mit Firemonkey.
Nachdem ich mit XE5 so viele Probleme hatte bin ich auf Delphi 10.3 umgestiegen.
Habe Windows 10 und Handy Sony Xperia.

Nun zu meinem Problem:
Früher benutzte ich
JaNein:=messagedlg('Programm-Ende ?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TmsgDlgBtn.mbNo], 0);

Das ist aber veraltet und nach Recherge benutze ich jetzt (mit FMX.DialogService)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  var MR: TModalResult;
    ……
      MR := mrNone;
      TDialogService.MessageDialog('Programm-Ende ?', System.UITypes.TMsgDlgType.mtConfirmation,
        [System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], System.UITypes.TMsgDlgBtn.mbYes, 0,
        Procedure(Const AResult: System.UITypes.TModalResult)
        Begin
          MR:=AResult;
        End);
      While MR = mrNone Do
      begin
        Application.ProcessMessages;
      end;

Aber auf dem Handy wird die MessageDialogBox nicht angezeigt.
Und deshalb kommt das Programm aus der WHILE-Schleife nicht raus. (ich kann ja keinen Ja/Nein Button drücken).

Kann mir da jemand einen Tipp geben?

Danke und Gruß
Jürgen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 13.07.19 16:31 
Warten auf die Antwort des Benutzers ist erstens nicht sinnvoll, funktioniert zweitens nicht und ist drittens unter Android und iOS verboten. Sprich eine App, die das macht, bekommst du ohnehin nicht in den AppStore.

Alles, was bei dir nach der while-Schleife kommt, gehört in die anonyme Methode, in der du aktuell nur MR setzt. Natürlich kannst du dort auch eine entsprechende Methode aufrufen.