Android 测试应用向后执行编程步骤

Android Test App perform programming steps backwards

我正在使用 Delphi 企业版 10.2.3 和 Android SDK 版本 24.3.3 32 位。我尝试了一个非常简单的程序,只有一个按钮。 Onclick 简单如下:

ShowMessage('1');
ShowMessage('2');
ShowMessage('3');
ShowMessage('4');

我在三星 phone 上点击按钮时得到的结果是:

4
3
2
1

我当然期待得到

1
2
3
4

这不是我的第一个 Android 程序。前面的运行顺利。但是当我在最新的程序中出现奇怪的错误时,我发现编程步骤是相反的。我现在也害怕重新编译以前的应用程序,以防万一我遇到这种奇怪的行为。所以我只是制作了一个新程序(上面)来测试,但得到了相同的结果。我还禁用了 Antivirus Avast 程序,甚至在另一台三星设备上尝试了它。

非常感谢您的帮助。此刻我真的很困惑,不确定接下来要采取什么步骤来解决这个问题。请帮助我!

在移动平台上,ShowMessage 行为异步。调用瞬间完成,不等待用户关闭对话框。

试试这个代码:

function TForm1.MyShowMessage(const Msg: String): TModalResult;
var
  MR: TModalResult;
begin
  MR := mrNone;
  TDialogService.MessageDialog(Msg, TMsgDlgType.mtConfirmation,const  [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], TMsgDlgBtn.mbYes, 0,
    procedure(const AResult: TModalResult)
    begin
      MR := AResult;
    end);
  while MR = mrNone do begin
    Application.ProcessMessages;
    CheckSynchronize;
  end;
  Result := MR;
end;