MessageDlg,MessageBox消息对话框+模式窗体返回值

(1)MessageDlg函数是将信息以对话框的形式输出并显示。

如图:

1 function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

函数参数说明:

Msg:显示消息的内容
DlgType:指定消息对话框的类型,
Buttons:指定消息对话框显示得按钮
Longint:指定应显示的帮助标题的正文ID

TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp);

(2).MessageBox跟MessageDlg功能是一样的,组合上会更灵活。

1 function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;
HWND:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。
lpText:欲显示的信息字符串。
lpCaption:对话框标题字符串。
uType:对话框类型常量。

对话框的类型常量可由按钮组合、缺省按钮、显示图标、运行模式四种常量组合而成。
 (1)按钮组合常量
 MB_OK = $00000000;         //一个确定按钮
 MB_OKCANCEL = $00000001;      //一个确定按钮,一个取消按钮
 MB_ABORTRETRYIGNORE = $00000002;  //一个异常终止按钮,一个重试按钮,一个忽略按钮
 MB_YESNOCANCEL = $00000003;     //一个是按钮,一个否按钮,一个取消按钮
 MB_YESNO = $00000004;        //一个是按钮,一个否按钮
 MB_RETRYCANCEL = $00000005;     //一个重试按钮,一个取消按钮
 (2)缺省按钮常量
 MB_DEFBUTTON1 = $00000000;     //第一个按钮为缺省按钮
 MB_DEFBUTTON2 = $00000100;     //第二个按钮为缺省按钮
 MB_DEFBUTTON3 = $00000200;     //第三个按钮为缺省按钮
 MB_DEFBUTTON4 = $00000300;     //第四个按钮为缺省按钮
 (3)图标常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“?”号图标
 MB_ICONEXCLAMATION = $00000030;    //“!”号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USERICON = $00000080;        //用户图标
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”号图标
 MB_IConERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 (4)运行模式常量
 MB_APPLMODAL = $00000000;    //应用程序模式,在未结束对话框前也能切换到另一应用程序
 MB_SYSTEMMODAL = $00001000;   //系统模式,必须结束对话框后,才能做其他操作
 MB_TASKMODAL = $00002000;    //任务模式,在未结束对话框前也能切换到另一应用程序
 MB_HELP = $00004000;       //Help Button
 3、函数返回值
 0            //对话框建立失败
 idOk = 1        //按确定按钮
 idCancel = 2      //按取消按钮
 idAbout = 3       //按异常终止按钮
 idRetry = 4       //按重试按钮
 idIgnore = 5      //按忽略按钮
 idYes = 6        //按是按钮
 idNo = 7        //按否按钮

例子:messagebox(0,'没有选择播放类型','错误',MB_ICONEXCLAMATION );

--Application.MessageBox('MessageBox','警告',MB_ICONWARNING+MB_YesNo);
--MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel);
--MessageBox(Form1.Handle,'MessageBox','提示‘,MB_ICONINFORMATION+MB_OkCancel+MB_DEFBUTTON2);
-- if MessageBox(Form1.Handle,'MessageBox','提示',MB_ICONINFORMATION+MB_OkCancel)= idOk then
     begin
       ShowMessage('Ok');
     end;

从上述可以看出MessageDlg函数和MessageBox函数是有Integer的返回值的,也叫做模式窗体返回值(ModalResult)。

ModalResult是指一个模式窗体(form.showmodal)的返回值,一般用于相应窗体上按钮的ModalResult属性.显示完窗体(关闭)后,会返回此属性预设的值做为返回值。

返回值可以使用的参数(默认值是mrNone):该属性可以设置为mrOk 、mrCancel...等等

例如:

1 var
2   i: Integer;
3 begin
4     i:= messagedlg('MessageDlg输出信息提示框',mtInformation,mbYesNoCancel,1);
5     if i = mrYes then
6     begin
7       ShowMessage('OnClick The yes');
8     end;
9 end;
原文地址:https://www.cnblogs.com/fansizhe/p/12636066.html