Delphi中平常使用的消息框有四种形式,有ShowMessage、MessageDlg、Application.MessageBox、MessageBox。下面来深入了解下这四种形式的实现和使用。
1.ShowMessage 显示一个带"OK"按钮的消息框
使用这个函数可以显示一个简单的带"OK"按钮的消息框,消息框的标题是应用程序的标题名,参数Msg字符串显示在消息框上。其源码如下:
begin
ShowMessagePos(Msg, - 1, - 1);
end;
可以看到它调用了ShowMessagePos函数,我们观察下面的代码,发现跟ShowMessage很有关系,源码如下:
begin
ShowMessage(Format(Msg, Params));
end;
procedure ShowMessagePos( const Msg: string; X, Y: Integer);
begin
MessageDlgPos(Msg, mtCustom, [mbOK], 0, X, Y);
end;
ShowMessageFmt跟ShowMessage类似,只是ShowMessageFmt参数是带格式化的字符串。而它们最终都调用ShowMessagePos,这是在指定的位置显示消息框,显示出来的效果还是跟ShowMessage一样,其参数X、Y坐标为-1的话表示出现在屏幕中间,其实现调用了MessageDlgPos,这跟MessageDlg又有什么关系,先看下面介绍MessageDlg。
2.MessageDlg 在屏幕中间显示带返回值的可自定义消息框
使用这个函数可以显示一个带图标、多种组合按钮、帮助ID,并且有返回值的消息框,其第一个参数Msg是消息框的显示内容,第二个参数DlgType为消息框类型,以图标形式显示在消息框左侧,其取值范围如下:
mtError //带红色叉的错误图标,标题是Error
mtInformation //带蓝色“i”符号的提示图标,标题是Information
mtConfirmation //带绿色问号的询问图标,标题是Confirmation
mtCustom //不带图标,消息框标题是应用程序的标题名称
第三个参数Buttons是出现在消息框上的按钮,可以是单个按钮,也可以是组合按钮,其取值范围如下:
mbNo //按钮'No'
mbOK //按钮'OK'
mbCancel //按钮'Cancel'
mbAbort //按钮'Abort'
mbRetry //按钮'Retry'
mbIgnore //按钮'Ignore'
mbAll //按钮'All'
mbNoToAll //