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;
我正在使用 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;