快速创建消息对话框

 

    在开发应用程序时,经常需要创建消息对话框。Delphi 提供了一个通用的对话框创建函数MessageBox,它是对Windows—API 中MessageBox 函数的封装,但使用时不需要提供窗口句柄。利用MessageBox 函数可以显示一条消息和一个或多个按钮,并且可以通过用户在对话框中的选择接收用户的响应,作为程序继续执行的依据。
  除利用通用的MessageBox 函数创建消息对话框外,Delphi 还提供了自身具有特殊风格的内部函数MessageDlg ,可以用来在屏幕中央快速创建丰富而美观的消息对话框。其语法格式为:function MessageDlg (const Msg :string ;AType :TMsgDlgType ;AButtons :TMsgDlgButtons ;HelpCtx:Longint):Word ;
  它包括四个参数,第一个参数Msg是显示在对话框中的消息;第二个参数AType 是对话框所包含的不同图标类型。第三个参数AButtons 是对话框所包含的按钮数目和类型,AButton 参数为TMs—gDlgBtns 类型,它是一个集合,因此在该集合内可以包含多个按钮。HelpCtx 参数定义消息框的帮助屏幕。
  当用户从对话框中选择一个按钮后,MessageDlg 函数返回一个值表示此按钮被选中,其返回值与按钮的关系如下所示:
  数值                                   含义
mrNone                           没有选中任何按钮
mrOk                               选中OK 按钮
mrCancel                       选中Cancel 按钮
mrAbort                         选中Abort 按钮
mrRetry                         选中Retry 按钮
mrIgnore                       选中Ignore 按钮
nrYes                             选中Yes 按钮
mrNo                               选中No 按钮
mrAll                             选中All 按钮
  下面是MessageDlg 函数的一个演示程序。假设窗体上有一个按钮,当用户单击该按钮时,它使用MessageDlg 函数弹出一个对话框,对话框中显示一个绿色的问号图标和一条消息,询问用户是否要退出系统,并提供一个Yes 按钮和一个No 按钮供用户选择。如果用户选择了Yes按钮,则MessageDlg 函数再次弹出一个对话框,显示一个蓝色的消息符号和一条消息,通知用户现在退出系统,当用户选择Ok,应用程序结束。
  procedure TForm1.Button1Click(Sender :TObject);begin ifMessageDlg('Want to exit System?',mt—Conflrmation ,[mbYes ,mbNo],0)=mrYesthenbegin MessageDlg('Exit Systemnow.',mtIn—for—mation ,[mbOk],0);Close ;end ;end ;
  除上面介绍的MessageDlg 函数外,Delphi 还提供了以下几个创建消息对话框的函数。
  ●MessageDl—gpos 函数,它的使用基本与MessageDlg 函数相同,只是它多了两个参数X 和Y ,可以在用户指定的位置显示对话框。
  ●ShowMessage 函数,它只带有一个字符串参数Msg ,用于显示一个带OK 按钮的对话框,对话框的消息为Msg ,标题为应用程序的可执行文件名。如:
  ●ShowMessage('Pushthis button')它实际上为下列Mes—sageDlg 函数的简写形式:MessageDlg('Pushthis button',mtCus—tom,[mbOK],0)
  ●ShowMessagePos 函数,它带有一个字符串参数Msg 和指定对话框显示位置的参数X 和Y ,用于在某位置显示一个带OK 按钮的对话框,对话框的消息为Msg ,标题为应用程序的可执行文件名。如:ShowMessagePos('Pushthis button',125,25)(河北吴泽平)