Application.MessageBox 是 TApplication 的成员函数,宣告如下:
function TApplication.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
自变量:
1. Text:要显示的讯息
2. Caption:讯息窗口的标题列文字
3. Flags:讯息旗标
3.1. 可指定讯息窗口上的图标
3.2. 可指定讯息窗口出现的按钮
3.3. 可指定预设Focus在哪一个按钮
3.4. 可指定是否 Modal
3.5. 其它
自变量说明:
Text、Caption 自变量为 PCahr 型态,字符串型态的变量可用 PChar()
转换,若直接传入一个字符串的话,就不用转型。
例如:
var s: string;
....
s := '存档失败';
Application.MessageBox(PChar(s), '错误', MB_ICONERROR);
Flag 自变量为 Longint 型态,可用的传入值有:
1. 指定讯息窗口上的图标
1.1 MB_ICONEXCLAMATION 或 MB_ICONWARNING
出现「黄三角形内有一个惊叹号」图示
1.2 MB_ICONINFORMATION 或 MB_ICONASTERISK
出现「白色椭圆内有一个蓝色小写 i」图示
1.3 MB_ICONQUESTION
出现「问号」图示
1.4 MB_ICONSTOP 或 MB_ICONERROR 或 MB_ICONHAND
出现「红色X」图示
2. 指定讯息窗口出现的按钮
2.1 MB_ABORTRETRYIGNORE
出现「Abort」「Retry」「Ignore」三个按钮
2.2 MB_OK
出现「Ok」按钮,为默认值。
2.3 MB_OKCANCEL
出现「Ok」「Cancel」两个按钮
2.4 MB_RETRYCANCEL
出现「Retry」「Cancel」两个按钮
2.5 MB_YESNO
出现「Yes」「No」两个按钮
2.6 MB_YESNOCANCEL
出现「Yes」「No」「Cancel」三个按钮
3. 可指定预设Focus在哪一个按钮
3.1 MB_DEFBUTTON1
指定focus在左边第一个按钮,这是默认值。
3.2 MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4
以此类推,指定focus在左边第二、三、四个按钮
4. 可指定是否 Modal
4.1 MB_APPLMODAL
对于应用程序而言,是 modal form
4.2 MB_SYSTEMMODAL
对于操作系统而言,是 modal form
4.3 MB_TASKMODAL
对于 task 而言,是 modal form
一般来说,这跟 MB_APPLMODAL 是等效的,但是当应用程序中的所有
form 都隐藏的时候,就必须使用这个,才能达到 modal 的目的
5. 其它
5.1 MB_TOPMOST
将讯息窗口提至最前面
5.2 MB_RIGHT
将消息正文向右对齐
在一个 Flag 要指定这么多的东西,要如何使用呢?
只要把要用的自变量组合 or 起来就可以了。例如:
Application.MessageBox(PCahr(sMsg), PChar(sCap), MB_YESNO or MB_ICONQUESTION or MB_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」按钮
顺带一提,按钮上的文字是会随着操作系统的语系而改变的,用中文版的 Windows,按钮上的文字就出现中文。
分享到:
相关推荐
首先,我们需要理解Delphi中的消息框是通过`MessageDlg`函数或者`Application.MessageBox`方法来创建的,它们都是弹出一个标准的系统对话框,无法直接满足自定义的需求。因此,我们需要创建自己的组件来实现这个功能...
Delphi 7.0的一个注册表操作实例,向注册表中写入数据,向... Application.MessageBox('向注册表中写入数据成功!','提示信息',64); MyReg.CloseKey; MyReg.Free; 以上代码片段仅供参考,完整源码请下载压缩包。
Delphi编写的数据库系统初始化程序源码,Delphi7.0版本开发的,请将名为qygl的脚本文件拷贝到应用程序所在的目录,注意,初始化会清空数据表中所有数据,在使用时小心,建议在使用前进行数据备份,以防止误删除数据...
Delphi7简单对windows 7注册表进行操作,先使用OpenKey打开键值,然后使用WriteInteger修改键值,当然也可删除键值,删除已定义好的注册表中的指定项,本演示例仅可删除注册表指定项,并不增加指定项或键值,除此之...
if Application.MessageBox('确定要更改吗?','提示',MB_YESNO)= ID_YES then begin MyReg := TRegistry.Create; MyReg.RootKey := HKEY_CURRENT_USER; if MyReg.OpenKey('\Software\Policies\Microsoft\...
Delphi 获取指定文件夹目录,可以设置掩码,可以提取到文件目录。源代码情况如下: memo1.Clear; try s:=FileListBox1.Directory; for i:=0 to FileListBox1.Count-1 do begin memo1.Lines.Append...
Delphi 获取Windows 打印分辨率,通过单击窗口中的按钮,直接获取到打印机支持的分辨率大小,为下一步定制打印程序提供依据。以下是核心代码: Try Application.MessageBox(pchar('水平分辨率为:' IntToStr...
if Application.MessageBox('确定要更改吗?','提示',MB_YESNO)= ID_YES then begin MyReg := TRegistry.Create; MyReg.RootKey := HKEY_CURRENT_USER; if MyReg.OpenKey('\Software\Microsoft\Internet ...
Application.MessageBox('信息添加成功!','信息提示 ',64); except ADOQuery1.Cancel; Application.MessageBox('信息添加失败!','错误 ',64); exit; end; ``` 五、 Delphi 文件复制 在 Delphi 中使用 ...
与大家分享一个简单的Delphi 文件比较的例子,注意:本示例只能对数据量较小的文件进地比较,运行后,需要指定源文件、目标文件,然后单击比较文件按钮,即可显示出比较结果: try SetLength(BufferA,StreamA....
将缓冲区中的内容写入文件中,学习Delphi中FileWrite的使用方法: begin H := FileOpen('d:\ini.txt',fmOpenWrite); if H <> -1 then begin FileSeek(H,0,2);//将文件指针定位到文件的末尾 buffer := '...
在Delphi编程环境中,`MessageBox`是一个非常基础且重要的组件,用于向用户显示信息、询问问题或报告错误。`MessageBox`通常在需要与用户进行简单交互时使用,它提供了多种预定义的消息样式和按钮组合。在本文中,...
Application.MessageBox('信息添加失败!', '错误', 64); Exit; end; ``` 5. **文件复制** Delphi提供了`FileExists`函数检查文件是否存在,以及`CopyFile`函数进行文件复制。在`ExtractFilePath(Application....
if Application.MessageBox('确定要在D盘中创建一个图象文件吗?','提示',MB_YESNO) = ID_YES then begin createFile := FileCreate('D:\main.bmp'); if CreateFile = -1 then begin ShowMessage('文件...
Delphi实现程序的自动识别路径,自动获取程序自身的路径信息,显示出自己所在的文件夹/目录路径。主要的源代码如上: procedure TForm1.FormShow... Application.MessageBox('图片文件不存在.','提示',64); end;
一个简单的Delphi7.0 邮件发送示例 含源码文件,将窗口中的邮件主题、收件人、邮件标题、邮件地址等信息填写完毕后,单击按钮即可发送邮件,基于SMTP发邮件的例子。部分代码段先睹为快: Clear; Subject := Edit...
Application.MessageBox('删除成功!','系统提示',64); end; ``` 方法四:使用 ShellExecute 删除文件夹 在这个方法中,我们使用 ShellExecute 函数来删除文件夹。这是一个简单的方法,但是它不能提供 Undo 选项。...
if Application.MessageBox('确实要删除当前文件吗?','提示',mb_YesNo) = ID_Yes then begin if FileListBox1.Items.Count>0 then begin With fileStruct do begin Wnd := 0; wFunc := FO_DELETE; ...
Application.MessageBox('提示信息', '标题', MB_OKCANCEL); ``` 6. **窗体最小化与还原** - 最小化窗体:`Application.Minimized;` - 还原窗体:`Application.Restore;` 7. **帮助文件关联**:通过 `...
if Application.MessageBox('确定要删除此行数据吗?','提示',MB_YESNO) = ID_NO then begin ADOQuery1.CancelBatch(); end else ADOQuery1.UpdateBatch(); end; procedure TForm1.FormCreate...