使用VCL,您可以使用
CreateMessageDialog
to generate a message dialog with custom button captions.
使用FMX CreateMessageDialog似乎不再存在(自XE3以来).
除了从头开始重建消息对话框之外,有没有办法使用FireMonkey自定义按钮标题?
我希望能够将函数调用为described here:
MessageDlg( 'Really quit application ?',mtWarning,[ButtonInfo(mbNo,'Do&n''t save'),ButtonInfo(mbCancel,'&Cancel'),ButtonInfo(mbYes,'&Save')],mbYes );
解决方法
总之,没有.您无权访问实际对话框,就像在VCL中一样.就像DadisX在评论中所说,你只能改变资源字符串值,但不能触及对话框本身.
但是,据说,FMX使用平台抽象层来处理实际的对话框,你可以稍微调整一下.在每个支持的平台上,FMX都有一个实现FMX IFMXDialogService
接口的类,以提供适合平台的对话框.您可以编写自己的类来实现IFMXDialogService并覆盖其MessageDialog()
方法(以及其他方法),以使用您自己的自定义对话框执行任何操作.然后,您可以使用TPlatformServices.RemovePlatformService()
取消注册IFMXDialogService的默认类,并使用TPlatformServices.AddPlatformService()
注册您的类.
有关更多详细信息,请参阅Embarcadero的文档: