MessageDlg,带有Delphi FireMonkey中的自定义按钮标题

yon*_*joy 0 delphi firemonkey delphi-xe4

使用VCL,您可以使用CreateMessageDialog自定义按钮标题生成消息对话框.

随着FMX CreateMessageDialog似乎不再存在(自XE3以来).

除了从头开始重建消息对话框之外,有没有办法使用FireMonkey自定义按钮标题?

我希望能够调用这里描述的函数:

MessageDlg(
    'Really quit application ?', mtWarning,
    [ButtonInfo(mbNo, 'Do&n''t save'), 
     ButtonInfo(mbCancel, '&Cancel'),
     ButtonInfo(mbYes,'&Save')],
    mbYes
  );
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 5

简而言之,没有.您无权访问实际对话框,就像在VCL中一样.就像DadisX在评论中所说,你只能改变资源字符串值,但不能触及对话框本身.

但是,据说,FMX使用平台抽象层来处理实际的对话框,你可以稍微调整一下.在每个支持的平台上,FMX都有一个实现FMX IFMXDialogService接口的类,以提供适合平台的对话框.您可以编写自己的类来实现IFMXDialogService和覆盖其MessageDialog()方法(以及其他方法),以使用您自己的自定义对话框执行任何操作.然后,您可以取消注册默认类以IFMXDialogService使用TPlatformServices.RemovePlatformService()和注册您的类TPlatformServices.AddPlatformService().

有关更多详细信息,请参阅Embarcadero的文档:

FireMonkey平台服务