我在 Android 上的 Delphi FMX 中有以下代码:
TDialogService.MessageDialog('Test Close message', TMsgDlgType.mtInformation,
[TMsgDlgBtn.mbOK], TMsgDlgBtn.mbOK, 0, nil);
我需要在 3 秒后自动关闭
TDialogService.MessageDialog
。
我尝试了
Screen.MousePos.SetLocation(x, x)
来设置水龙头来模拟。
在 Android 上,
TDialogService.MessageDialog()
只需调用 IFMXDialogServiceAsync.MessageDialogAsync()
(因为 Android 不支持同步对话框)。默认实现隐藏在 TFMXDialogService
单元中的 FMX.Dialogs.Android
类中。
您无权访问它创建的 UI 对话框,因此无法手动关闭它。但是,您可以编写自己的类来实现
IFMXDialogServiceAsync
接口,然后 使用 FMX 注册该类(您必须首先 删除默认服务 )。然后,您可以对对话框实现执行任何您想要的操作。
也就是说,与其以这种方式挂钩
TDialogService.MessageDialog()
,您可能最好只是显示自己的表单,并使用表单上的计时器让它自行关闭(或者让您的 IFMXDialogServiceAsync.MessageDialogAsync
实现在内部执行此操作) .