Delphi 11.1中MessageDlg自定义按钮文本功能无法实现求助
Delphi 11.1 MessageDlg自定义按钮正确用法
确保你引用的是
Vcl.Dialogs单元中的MessageDlg函数,FMX版本的重载逻辑不同。正确触发自定义按钮重载的关键:第三个参数
Buttons必须传入mbCustom,否则编译器会匹配到其他不支持自定义按钮的重载版本。完整调用示例:
var SelResult: Integer; begin // 传入mbCustom作为Buttons参数,最后跟上自定义按钮的字符串数组 SelResult := MessageDlg('请选择操作类型', mtInformation, mbCustom, 0, ['确认执行', '返回修改', '查看说明']); case SelResult of 0: ShowMessage('选择了确认执行'); 1: ShowMessage('选择了返回修改'); 2: ShowMessage('选择了查看说明'); end; end;常见错误排查:
- 检查
Buttons参数是否为mbCustom,这是调用该重载的必要条件。 - 确认单元引用:VCL项目需引用
Vcl.Dialogs,FMX项目自定义按钮需使用TDialogServiceAsync等组件实现,逻辑与VCL不同。 - 字符串数组元素数量无限制,3个元素完全合法。
- 检查
如果严格按照上述写法仍报错,才可能是参数提示的问题,但绝大多数情况是参数组合不符合重载要求导致的。
内容的提问来源于stack exchange,提问作者John Barrat
相关产品推荐
相关产品推荐

