MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。 1、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。 Text:欲显示的信息字符串。 Caption:对话框标题字符串。 Type:对话框类型常量。 该函数的返回值为整数,用于对话框按钮的识别。 2、类型常量 对话框的类型常量可由按钮组合、缺省按钮、显示图标、运行模式四种常量组合而成。 (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用法
messageDlg, 是在对话框显示消息,并等待用户点击一个按钮,然后返回一个整数确定知道是那个按钮. 原型:MessageDlg(const Msg: string; DlgType: TMsgDlgType;Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer
Msg:想要提示的文字 DlgType:对话框的类型 Buttons:对话框中的按钮 HelpCtx:定义对话框的帮助屏幕,使用HelpCtx参数可以指定当用户单击Help按钮或按F1键所弹出的帮助主题的帮助上下文ID,一般也用不上,用0,表示帮助主题为空。
对话框类型: mtwarning——含有感叹号的警告对话框 mterror——含有红色叉符号的错误对话框 mtinformation——含有蓝色i符号的信息对话框 mtconfirmation——含有绿色问号的确认对话框 mtcustom——不含图标的一般对话框,对话框的标题是程序的名称
按钮组中的按钮: mbYes——mrYes或6 mbNo——mrNo或7 mbOk——mrOk或1 mbCancel——mrCancel或2 mbHelp——help按钮 mbAbort——mrAbort或3 mbRetry——mrRetry或4 mbIgnore——mrIgnore或5 mbAll——mrAll或8 mbNoToAll——9 mbYesToAll——10
举例: procedure TForm1.Button1Click(Sender: TObject); begin Messagedlg('你确定吗',mtWarning,[mbYES,mbNO],0); MessageDlg('错误(1001)',mtError,[mbCancel],0); end;
MessageDlg()信息的汉化
Delphi中的常量都放在consts.pas中,修改它可以达到汉化的目的.如: MessageDlg()显示的窗口标题及其中的 按钮标题都是英文,虽然不影响使用,但在一个中文软件中总显得有些不协调. 为此在consts.pas中查找以下内容: "SMsgDlgWarning" 把 SMsgDlgWarning = 'Warning'; SMsgDlgError = 'Error'; SMsgDlgInformation = 'Information'; SMsgDlgConfirm = 'Confirm'; SMsgDlgYes = '&Yes'; SMsgDlgNo = '&No'; SMsgDlgOK = 'OK'; SMsgDlgCancel = 'Cancel'; SMsgDlgHelp = '&Help'; SMsgDlgHelpNone = 'No help available'; SMsgDlgHelpHelp = 'Help'; SMsgDlgAbort = '&Abort'; SMsgDlgRetry = '&Retry'; SMsgDlgIgnore = '&Ignore'; SMsgDlgAll = '&All'; SMsgDlgNoToAll = 'N&o to All'; SMsgDlgYesToAll = 'Yes to &All'; 改成 SMsgDlgWarning = '警告'; SMsgDlgError = '错误'; SMsgDlgInformation = '提示'; SMsgDlgConfirm = '确认'; SMsgDlgYes = '是(&Y)'; SMsgDlgNo = '不(&N)'; SMsgDlgOK = '确定'; SMsgDlgCancel = '取消'; SMsgDlgHelp = '帮助(&H)'; SMsgDlgHelpNone = '没有该帮助信息'; SMsgDlgHelpHelp = '帮助'; SMsgDlgAbort = '放弃(&A)'; SMsgDlgRetry = '重试(&R)'; SMsgDlgIgnore = '忽略(&I)'; SMsgDlgAll = '全部(&A)'; SMsgDlgNoToAll = '全都不(&O)'; SMsgDlgYesToAll = '全都是(&A)'; 然后重新编译Consts.pas,把Consts.dcu 拷到delphi的lib和slib子目录下,就OK啦!
|
请发表评论