delphi vcl信息提示总结

我现在使用二种信息提示的方式,一种当然是使用Application.messageBox的方式,就是即时提示。
另一种就是将所有的错误和警告写在一起,适用于大批量数据的录入,一条条提示太麻烦了。
     1 即时提示
      我将Application.messageBox进行了封装,MessageBox的哪些参数太多了,哪个有时间去记。封装如下:
 
     //普通提示
procedure MsgInfo(const strInfo,strTitle:String);
begin
Application.messageBox(Pchar(strInfo),Pchar(strTitle),MB_OK or MB_ICONINFORMATION or MB_DEFBUTTON1);
end;
 
//警告提示
procedure MsgWarning(const strInfo,strTitle:String);
begin
Application.messageBox(Pchar(strInfo),Pchar(strTitle),MB_OK or MB_ICONEXCLAMATION or MB_DEFBUTTON1);
end;
 
//错误提示
Procedure MsgWrong(const strInfo,strTitle:String);
begin
Application.messageBox(Pchar(strInfo),Pchar(strTitle),MB_OK or MB_ICONEXCLAMATION or MB_DEFBUTTON1);
end;
 
//确认提示 ,返回值IDYES为确认 ,IDNO为否,IDABort为没有足够的内存来显示提示信息
function MsgConfirm(const strInfo,strTitle:String):Integer;
begin
Result := Application.MessageBox(Pchar(StrInfo),Pchar(StrTitle),MB_YESNO or MB_ICONQuestion or MB_DEFBUTTON2);
end;
 
当然也可以按自己的想法再添加或修改了,附上MessageBox后面的Flags参数的意义:
MessageBox方法 
对应对象:TApplication 
声明:function MessageBox(Text,Caption:PChar;Flags:Word):Integer; 
功能:MessageBox方法可以显示一个对话框,在对话框中包含了一条信息和一个及多个按钮。MessageBox方法是TApplication中的一个经常使用的方法,它包含了Windows API MessageBox函数。使用过Windows的朋友都看到过MessageBox,可以使用VB或Delphi来创建它们。以下是Flags允许的一些值的组合。 
标 记 值 / 意   义 
MB_ABORTRETRYIGNORE / 出现3个按钮:Abort,Retry,Ignore。 
MB_APPLMODAL / 对于应用程序的信息框是模式的,即当返回到应用程序之前用户必须单击一个键,MB_APPLMODAL由缺少值设置,对应的行为可以使用MB_SYSTEMMODAL或MB_TASKMODAL来改变。 
MB_DEFAULT_DESKTOP_ONLY / 信息框必须出现在缺少的桌面上,这个桌面是用户注册的桌面。
MB_DEFBUTTON1 / 信息框的第一个按钮是缺省的按钮。 
MB_DEFBUTTON2 / 信息框的第二个按钮是缺省的按钮。 
MB_DEFBUTTON3 / 信息框的第三个按钮是缺省的按钮。 
MB_DEFBUTTON4 / 信息框的第四个按钮是缺省的按钮。 
MB_HELP / 在信息框上添加一个Help按钮,当按F1或此按钮时可以引起Help事件。 
MB_ICONASTERISK / 与MB_ICONFORMATION的相同。 
MB_ICONERROR / 与MB_ICONHAND相同。 
MB_ICONEXCLAMATION / 出现一个感叹号的图标。 
MB_ICONHAND / 与MB_ICONSTOP相同。 
MB_ICONINFORMATION / 出现一个小写的i图标。 
MB_ICONQUESTION / 出现一个问号?的图标。 
MB_ICONSTOP / 出现一个红色的叉子×的图标。 
MB_ICONWARNING / 与MB_ICONEXCLAMATION的相同。 
MB_OK / 信息框出现一个按钮,按钮标题是OK。 
MB_OKCANCEL / 信息框出现两个按钮,按钮标题是OK和Cancel。 
MB_RETRYCANCEL / 信息框出现两个按钮,按钮标题是Retry和Cancel。 
MB_RIGHT / 信息框内的信息是向右对齐的。 
MB_TRLREADING / 信息框内的文字对于Hebrew和Arabic系统来说是向右对齐的。 
MB_SERVICE_NOTIFICATION / 允许信息框在一个没有被注册的桌面上显示。 
MB_SETFORMEGROUND / 使信息框成为当前的窗口。 
MB_SYSTEMMODAL / 此信息框不允许用户在它被关闭之前进行任何的其他操作,这个标记可以为十分重要的信息进行保留。 
MB_TASKMODAL / 与MB_APPLMODAL相同。 
MB_YESNO / 信息框有两个按钮,按钮标题是Yes和No。 
MB_YESNOCANCEL / 信息框内有三个按钮,按钮标题是Yes,No和Canel。 
对于此属性的返回值类型可见下表: 
命名的返回值 / 返回数值 / 意义
IDABORT / 0 / 没有足够的内存空间来显示信息框。 
IDABORT / 3 / 用户选择了Abort按钮功能。 
IDCANCEL / 2 / 用户选择了Cancel按钮功能。 
IDIGNORE / 5 / 用户选择了Ignore按钮功能。 
IDNO / 7 / 用户选择了No按钮功能。 
IDOK / 1 / 用户选择了OK按钮功能。 
IDRETRY / 4 / 用户选择了Retry按钮功能。 
IDYES / 6 / 用户选择了Yes按钮功能。 
 
2 在窗体中给出提示信息
建立一个窗体,上面给出一个Memo控件来显示多行提示内容,下面给出三个按扭:确定,忽略,关闭。
窗体给两个整数属性:警告条数和错误条数。任务情况下关闭按扭可用,当错误条数=0时且警告条数>0时警告可用,当错误条数=0且警告条数=0时,确定按扭可用。另有一处AnsiString用来存储错误和警告信息。
调用该窗体时,每增加一种错误,则错误数加1,每增加一条警告则警告数加1,相应的显示信息则连接成一个字符串即可。

delphi vcl信息提示总结

上一篇:深入VCL源码研究DELPHI窗体的创建和关闭


下一篇:PHP Countable接口