delphi中Application.MessageBox函数用法详解
delphi中Application.MessageBox函数用法详解
Application.MessageBox是TApplication的成员函数,声明如下:
functionTApplication.MessageBox(constText,Caption:PChar;Flags:Longint):Integer;
引数:
1.Text:要显示的信息
2.Caption:信息窗口的标题文字
3.Flags:窗体标志(说明是何种类型的信息窗体)
3.1.可指定信息窗体上的图标
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,按钮上的文字就出现中文
delphi中Application.MessageBox函数用法详解的更多相关文章
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- Delphi中的线程类 - TThread详解
Delphi中的线程类 - TThread详解 2011年06月27日 星期一 20:28 Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本 ...
- eval()函数用法详解
eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数, ...
- 转载 LayoutInflater的inflate函数用法详解
http://www.open-open.com/lib/view/open1328837587484.html LayoutInflater的inflate函数用法详解 LayoutInflater ...
- C语言对文件的操作函数用法详解2
fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...
- C语言对文件的操作函数用法详解1
在ANSIC中,对文件的操作分为两种方式,即: 流式文件操作 I/O文件操作 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下: typedef str ...
- SVN中tag branch trunk用法详解
SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...
- Oracle数据库中序列(SEQUENCE)的用法详解
Oracle数据库中序列(SEQUENCE)的用法详解 在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...
随机推荐
- Understanding the managed heap
Understanding the managed heap Another common problem faced by many Unity developers is the unexpe ...
- APACHE REWRITE ? 匹配问号的写法
RewriteRule 不会去匹配 ? 后面的字符串,需要用RewriteCond来匹配 把 /abc?id=123 => /def.php?id=123 的写法: RewriteEng ...
- 20165308 实验二 Java面向对象程序设计
20165308 实验二 Java面向对象程序设计 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 ...
- 谈谈 数据中心SOA 架构
为什么要讨论 数据中心SOA 架构呢? 请参考我写的另外一篇文章 <论 微服务 和 Entity Framework 对数据的割裂> https://www.cnblogs.com ...
- node 各模块及对应功能
node 各模块及对应功能 node 模块 对应功能 net 处理 TCP dgram 处理 UDP http 处理 HTTP/1 http2 处理 HTTP/2 https 处理 HTTPS tls ...
- 代码风格统一工具:EditorConfig 和 静态代码检查工具:ESLint
EditorConfig 最常见的用途是:统一文件的编码字符集以及缩进风格 使用 Eslint 做代码 lint,那么为什么还要使用 .editorconfig 呢?细细想了下,应该有两个方面吧. E ...
- 装饰模式Decorator Pattern
1.主要优点 装饰模式的主要优点如下: (1) 对于扩展一个对象的功能,装饰模式比继承更加灵活性,不会导致类的个数急剧增加. (3) 可以对一个对象进行多次装饰,通过使用不同的具体装饰类以及这些装饰类 ...
- jmeter --JVM调优设置
JMeter用户可根据运行的计算机配置,来适当调整JMeter.bat中的JVM调优设置,如下所示: set HEAP=-Xms512m -Xmx512m set NEW=-XX:NewSize=12 ...
- C#:decimal的去0显示
public static string DecimalToString(decimal d) { return d.ToString("#0.######"); } 后面的0会给 ...
- servet概述
1定义 Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 Servl ...