为什么 MessageDlg 在 windows 下只显示 "OK" 按钮?
why MessageDlg show only "OK" button under windows?
使用 delphi 10.2.2 firemonkey
,在 windows
下,当我这样做时:
MessageDlg('Are you sure you want to undo the last operation ?', // const AMessage: string;
TMsgDlgType.mtConfirmation, // const ADialogType: TMsgDlgType;
[TMsgDlgBtn.mbYes, TMsgDlgBtn.mbCancel], // const AButtons: TMsgDlgButtons;
0, // const AHelpContext: THelpContext;
TMsgDlgBtn.mbCancel, // const ADefaultButton: TMsgDlgBtn;
procedure(const AResult: TModalResult)
begin
if AResult = mrYes then begin
end;
end); // const ACloseDialogProc: TInputCloseDialogProc);
然后在弹出对话框中只显示一个“确定”按钮(没有“取消”和“”是的”)。这是正常的还是我错过了什么?
这是因为 Delphi 检查有效的按钮组合,而对于 Yes 和 Cancel 的组合没有对应的 dialog box type 在 Windows 平台上。你只得到与 OK 按钮的对话是因为传递给 Windows API 函数的结构在开始时被归零并且 [=15 的值=]uType参数MB_OK就是0.
Windows 实现在 TFMXDialogService.MessageDialog 方法中,在 FMX.Dialogs.Win[=22= 中]模块。
使用 delphi 10.2.2 firemonkey
,在 windows
下,当我这样做时:
MessageDlg('Are you sure you want to undo the last operation ?', // const AMessage: string;
TMsgDlgType.mtConfirmation, // const ADialogType: TMsgDlgType;
[TMsgDlgBtn.mbYes, TMsgDlgBtn.mbCancel], // const AButtons: TMsgDlgButtons;
0, // const AHelpContext: THelpContext;
TMsgDlgBtn.mbCancel, // const ADefaultButton: TMsgDlgBtn;
procedure(const AResult: TModalResult)
begin
if AResult = mrYes then begin
end;
end); // const ACloseDialogProc: TInputCloseDialogProc);
然后在弹出对话框中只显示一个“确定”按钮(没有“取消”和“”是的”)。这是正常的还是我错过了什么?
这是因为 Delphi 检查有效的按钮组合,而对于 Yes 和 Cancel 的组合没有对应的 dialog box type 在 Windows 平台上。你只得到与 OK 按钮的对话是因为传递给 Windows API 函数的结构在开始时被归零并且 [=15 的值=]uType参数MB_OK就是0.
Windows 实现在 TFMXDialogService.MessageDialog 方法中,在 FMX.Dialogs.Win[=22= 中]模块。