• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi中Application.MessageBox函数用法详解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Application.MessageBox是TApplication的成员函数,声明如下:
functionTApplication.MessageBox(constText,Caption:PChar;Flags:Longint):Integer;

引数:
1.Text:要显示的信息
2.Caption:信息窗口的标题文字
3.Flags:窗体标志(说明是何种类型的信息窗体)
3.1.可指定信息窗体上的图标

3.2.可指定信息窗体上出现的按钮
3.3.可指定预设Focus在哪一个按钮上
3.4.可指定是否Modal
3.5.其他

变量说明:
如为Text、Caption或其他string类型的变量,改为PCahr型态,字串型态的变数可用PChar()
转换,若直接传入一个字串的值话,就不用转型。
例如:
vars:string;
....
s:=\'存档失败\';
Application.MessageBox(PChar(s),\'错误\',MB_ICONERROR);

//窗口标识可以含多个,例如下面表示带问号,同时含有yes和no两个按钮
Application.MessageBox(\'要保存文件内容吗?\', \'保存\', MB_YESNO or MB_ICONQUESTION);

Flag引数为Longint型态,可用的传入值有:
1.指定讯息视窗上的图示
1.1MB_ICONEXCLAMATION或MB_ICONWARNING
出现「黄三角形内有一个惊叹号」图示
1.2MB_ICONINFORMATION或MB_ICONASTERISK
出现「白色椭圆内有一个蓝色小写i」图示
1.3MB_ICONQUESTION
出现「问号」图示
1.4MB_ICONSTOP或MB_ICONERROR或MB_ICONHAND
出现「红色X」图示

2.指定讯息视窗出现的按钮
2.1MB_ABORTRETRYIGNORE
出现「Abort」「Retry」「Ignore」三个按钮
2.2MB_OK
出现「Ok」按钮,为预设值。
2.3MB_OKCANCEL
出现「Ok」「Cancel」两个按钮
2.4MB_RETRYCANCEL
出现「Retry」「Cancel」两个按钮
2.5MB_YESNO
出现「Yes」「No」两个按钮
2.6MB_YESNOCANCEL
出现「Yes」「No」「Cancel」三个按钮

3.可指定预设Focus在哪一个按钮
3.1MB_DEFBUTTON1
指定focus在左边第一个按钮,这是预设值。
3.2MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4
以此类推,指定focus在左边第二、三、四个按钮

4.可指定是否Modal
4.1MB_APPLMODAL
对于应用程式而言,是modalform
4.2MB_SYSTEMMODAL
对于作业系统而言,是modalform
4.3MB_TASKMODAL
对于task而言,是modalform
一般来说,这跟MB_APPLMODAL是等效的,但是当应用程式中的所有
form都隐藏的时候,就必须使用这个,才能达到modal的目的

5.其他
5.1MB_TOPMOST
将讯息视窗提至最前面
5.2MB_RIGHT
将讯息文字向右对齐

在一个Flag要指定这么多的东西,要如何使用呢?
只要把要用的引数组合or起来就可以了(或者用+号连接起来也可以)。例如:

Application.MessageBox(PCahr(sMsg),PChar(sCap),MB_YESNOorMB_ICONQUESTIONorMB_DEFBUTTON2)
这样会出现「问号」图示,「Yes」「No」两个按钮,而且focus在No按钮上

回传值:
1.IDABORT:使用者按了「Abort」按钮
2.IDCANCEL:使用者按了「Cancel」按钮
3.IDIGNORE:使用者按了「Ignore」按钮
4.IDNO:使用者按了「No」按钮
5.IDOK:使用者按了「Ok」按钮
6.IDRETRY:使用者按了「Retry」按钮
7.IDYES:使用者按了「Yes」按钮

结果处理示例:

Result := Application.MessageBox(\'要保存文件内容吗?\', \'保存\', MB_YESNO or MB_ICONQUESTION);
case Result of
      ID_YES:
        if SaveFile(False) then
          MakeNewDocument;
      ID_NO:
        MakeNewDocument;
    end

备注:按钮上的文字是会随着作业系统的语系而改变的,用中文版的Windows,按钮上的文字就出现中文。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap