Delphi中弹出提示框的四种方法
参考:http://blog.itpub.net/8432156/viewspace-924843/
更为详细的内容请参见:http://blog.csdn.net/akof1314/article/details/6256952
以下是四种方法的简介,要想去准确的使用,请参考Delphi的帮助手册,里面准确的提到了怎么调用、有什么函数、会会出现什么效果
在Delphi中,提供模式化对话框的方法很多,现对几种比较常用的方法做如下比较:
1) 直接调用Windows API 函数MessageBox
该方法一般情况下使用正常,而且根据不同的操作系统将显示相应的中文或英文按钮标题。而在笔者曾经开发的系统中,偶尔会出现该函数没有锁定Handle所指的窗口的情况。通过观察发现,当入口参数的窗口句柄是Application.MainForm的窗口句柄时,没有出现类似情况。因此,建议大家慎用。
2) 调用Delphi提供的函数MessageDlg
该方法的不足之处是,对话框的按钮标题是英文。
3) 调用Delphi提供的过程ShowMessage
该方法默认将应用程序的标题作为对话框的标题,并且仅仅是信息提示框,不太灵活。
ShowMessage的声明有两种
procedure ShowMessage(const Msg: WideString); overload; procedure ShowMessage(const Msg: WideString; Params: array of const); overload;
4) 调用函数Application.MessageBox
强力推荐使用该方法。该方法的使用效果与Windows API 函数MessageBox完全相同,并且不会出现有时没有锁定当前活动窗口的情况。
例如:
Aplication.MessageBox( '插入成功', '成功', MB_OK + MB_ICONEXCLAMATION);
MessageBox的声明如下
function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;
其弹出框效果如下