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

问题描述 投票:0回答:1

我在 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 delphi firemonkey messagedialog
1个回答
0
投票

在 Android 上,

TDialogService.MessageDialog()
只需调用
IFMXDialogServiceAsync.MessageDialogAsync()
(因为 Android 不支持同步对话框)。默认实现隐藏在
TFMXDialogService
单元中的
FMX.Dialogs.Android
类中。

您无权访问它创建的 UI 对话框,因此无法手动关闭它。但是,您可以编写自己的类来实现

IFMXDialogServiceAsync
接口,然后 使用 FMX 注册该类(您必须首先 删除默认服务 )。然后,您可以对对话框实现执行任何您想要的操作。

也就是说,与其以这种方式挂钩

TDialogService.MessageDialog()
,您可能最好只是显示自己的表单,并使用表单上的计时器让它自行关闭(或者让您的
IFMXDialogServiceAsync.MessageDialogAsync
实现在内部执行此操作) .

© www.soinside.com 2019 - 2024. All rights reserved.