如何在Android上的 Delphi FMX中在一定时间后自动关闭TDialogService.MessageDialog()?

mjqavswn  于 2023-10-18  发布在  Android
关注(0)|答案(1)|浏览(166)

我在Android上的 Delphi FMX中有以下代码:

TDialogService.MessageDialog('Test Close message', TMsgDlgType.mtInformation,
                  [TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0, nil);

我需要在3秒后自动关闭TDialogService.MessageDialog
我尝试了Screen.MousePos.SetLocation(x, x)设置一个水龙头来模拟。

syqv5f0l

syqv5f0l1#

在Android上,TDialogService.MessageDialog()只是调用IFMXDialogServiceAsync.MessageDialogAsync()(因为Android不支持同步对话框)。默认实现隐藏在FMX.Dialogs.Android单元中的TFMXDialogService类中。
您无权访问它创建的UI对话框,因此无法手动关闭它。但是,你可以做的是编写自己的类来实现IFMXDialogServiceAsync接口,然后是register that class with FMX(你必须先实现remove the default service)。然后,你可以对你的对话框实现做任何你想做的事情。例如,您可以显示自己的窗体,该窗体上有一个用于关闭窗体的计时器。

相关问题