Delphi XE MessageDlg[1] 介绍与用法 -将窗体显示为模式对话框。
Delphi XE MessageDlg[1] 介绍与用法 - 将窗体显示为模式对话框。
uses FMX.Dialogs
原型:
function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext): Integer;
begin
Result := MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '');
end;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ACloseDialogProc: TInputCloseDialogProc);
begin
MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '', ACloseDialogProc);
end;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ACloseDialogEvent: TInputCloseDialogEvent; const AContext: TObject);
begin
MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '', ACloseDialogEvent, AContext);
end;
function MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn): Integer;
begin
Result := MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '', ADefaultButton);
end;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons; const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn;
const ACloseDialogProc: TInputCloseDialogProc);
begin
MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '', ADefaultButton, ACloseDialogProc);
end;
procedure MessageDlg(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons;const AHelpContext: THelpContext; const ADefaultButton: TMsgDlgBtn;
const ACloseDialogEvent: TInputCloseDialogEvent; const AContext: TObject);
begin
MessageDlgPosHelp(AMessage, ADialogType, AButtons, AHelpContext, -1, -1, '', ADefaultButton, ACloseDialogEvent, AContext);
end;
参数(TMsgDlgType 、TMsgDlgBtn、TMsgDlgType )
- AMessage://表示对话框的文本消息
- ADialogType: //表示对话框的类型 ,参照一下以下TMsgDlgType 类型说明
- AButtons //决定对话框的按钮,参照以下 TMsgDlgBtn 类型说明
- AHelpContext //指定此对话框在单击对话框的帮助按钮时将使用的帮助上下文ID。 注意:为了使“帮助”按钮显示在对话框上,请在对话框的“选项”属性中添加poShowHelp标志。
- ADefaultButton //确定显示对话框时处于焦点的按钮。有关按钮类型的列表,请参阅System.UITypes.TMsgDlgBtn。
- ACloseDialogProc //是在对话框关闭时MessageDlg执行的匿名方法。
返回值:
MessageDlg返回用户选择的按钮的值。如果提供ACloseQueryProc参数,InputQuery会将所选按钮传递给ACloseQueryProc方法。
注意:“帮助”按钮不会返回值,因为它不会关闭对话框。
如果对MessageDlg的调用不包含ACloseDialogProc参数,则该调用在所有平台上都被阻塞;也就是说,直到对话框关闭,MessageDlg才会返回。Android不支持这些阻塞调用,如果提供ACloseDialogProc参数,则只能在Android上使用MessageDlg。
包含ACloseDialogProc参数的对MessageDlg的调用在桌面平台上也会阻塞,但在移动平台上不会阻塞;也就是说,在移动平台上,在调用MessageDlg之后放置的任何代码都会在对话框关闭之前执行。如果需要在对话框关闭后执行代码,请使用MessageDlg的ACloseDialogProc参数定义运行该代码的匿名方法。
平台支持
下表总结了哪些平台支持哪些对MessageDlg的调用,以及这些调用是阻塞的还是非阻塞的:
Platform | Without ACloseDialogProc | With ACloseDialogProc |
---|---|---|
Windows | 阻塞 (Blocking) | 阻塞 |
OS X | 阻塞 | 阻塞 |
iOS | 阻塞 | 非阻塞 |
Android | 非阻塞 |
TMsgDlgType :
- mtWarning, //警告用户潜在问题
- mtError, //将发生的错误通知用户
- mtInformation, //向用户提供信息。
- mtConfirmation, //请用户确认。
- mtCustom //以上都不是
TMsgDlgBtn类型对应 返回值:
TMsgDlgBtn Value | Corresponding Return Value |
---|---|
mbOK |
mrOk |
mbCancel |
mrCancel |
mbAbort |
mrAbort |
mbRetry |
mrRetry |
mbIgnore |
mrIgnore |
mbYes |
mrYes |
mbNo |
mrNo |
mbClose |
mrClose |
mbHelp |
mrHelp |
mbTryAgain |
mrTryAgain |
mbContinue |
mrContinue |
mbNone |
mrNone |
mbAll |
mrAll |
mbNoToAll |
mrNoToAll |
mbYesToAll |
mrYesToAll |
MessageDlg 用法示例:
MessageDlg ('Error while connecting:'+#13+E.Message, TMsgDlgType.mtError, [TMsgDlgBtn.mbOk], 0); //提示错误对话框,带ok按钮
if MessageDlg('欢迎来到[滔Roy]的博客. 现在退出吗?', TMsgDlgType.mtConfirmation,
[TMsgDlgBtn.mbYes,TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbYes) = mrYes then
begin
MessageDlg('正在退出[滔Roy]的博客园.', TMsgDlgType.mtInformation,
[TMsgDlgBtn.mbOk], 0, TMsgDlgBtn.mbOk);
Close;
end;
创建时间:2020.06.01 更新时间:2020.06.04 2022.09.29