当前位置:首页 > 网络编程 > 软件语言 > DELPHI > 在Delphi中定义自己图标的消息框

在Delphi中定义自己图标的消息框

点击次数:50 次 发布日期:2008-11-09 08:39:50 作者:源代码网
源代码网推荐
广告载入中
  应用程序在运行当中经常要输出各种即时信息,Delphi提供了多种形式的消息对话框可以满足这些要求,尽管可以使用各种标志定制一个消息框,但仍不能将自己的图标放在消息框内,也不能修改其标准行为去创建自己的消息框,其实通过调用函数MessageBoxIndirect()就很容易绕过这些明确的限制,这是一个功能很强、易于使用的函数。
源代码网推荐
源代码网推荐 ---- 此函数在WINDOWS单元里面,文件位于Delphi安装路径SourceRtlWin里面,需要指出的是,Delphi的原代码中它的返回值类型是BOOL型,而实质上它的返回值应为Integer。修改方法:在WINDOWS单元中找到此函数后,把BOOL改为Integer,共有三处要修改,然后在Delphi安装路径Lib中找到WINDOWS.DCU文件,把它改名或者删除,并把修改后的WINDOWS.PAS源码复制到Lib路径中。
源代码网推荐
源代码网推荐 ---- 该函数只有一个参数,类型是TMsgBoxParams,它的结构及说明如下:
源代码网推荐
源代码网推荐 tagMSGBOXPARAMSA = packed record
源代码网推荐 cbSize: UINT;
源代码网推荐 {数据结构的长度}
源代码网推荐 hwndOwner: HWND;
源代码网推荐 {所有者窗口句柄}
源代码网推荐 hInstance: HINST;
源代码网推荐 {应用程序实例句柄}
源代码网推荐 lpszText: PAnsiChar;
源代码网推荐 {在消息框客户区内显示的文本}
源代码网推荐 lpszCaption: PAnsiChar;
源代码网推荐 {标题栏文本}
源代码网推荐 dwStyle: DWORD;
源代码网推荐 {确定消息框内按钮和图符
源代码网推荐 的数量及种类的MB_标志}
源代码网推荐 lpszIcon: PAnsiChar;
源代码网推荐 {从资源文件中取出的一个
源代码网推荐 图符资源的名字}
源代码网推荐 dwContextHelpId: DWORD;
源代码网推荐 {指定帮助文本的ID号}
源代码网推荐 lpfnMsgBoxCallback: TPRMsgBoxCallback;
源代码网推荐 {当用户按下HELP按钮时调用的一个回
源代码网推荐 调函数}
源代码网推荐 dwLanguageId: DWORD;
源代码网推荐 {显示在按钮内文本的语言定义}
源代码网推荐 end;
源代码网推荐
源代码网推荐 ---- 由于直接使用此函数比较复杂,我们可以自定义一个函数来封装此函数,对它进行简化,在用法上尽量做到与Delphi的消息框相一致,自定义函数代码如下:
源代码网推荐 function MessageEx
源代码网推荐 (lText,lCaption:PChar;
源代码网推荐 lStyle:DWord;lIcon:PChar):Integer;
源代码网推荐 var
源代码网推荐 Msg:TMsgBoxParams;
源代码网推荐 begin
源代码网推荐 Msg.cbSize:=Sizeof(Msg);
源代码网推荐 Msg.hwndOwner:=Application.Handle;
源代码网推荐 Msg.hInstance:=hinstance;
源代码网推荐 Msg.lpszText:=lText;
源代码网推荐 Msg.lpszCaption:=lCaption;
源代码网推荐 Msg.dwStyle:=lStyle;
源代码网推荐 Msg.lpszIcon:=lIcon;
源代码网推荐 Msg.dwContextHelpId:=1;
源代码网推荐 Msg.lpfnMsgBoxCallback:=nil;
源代码网推荐 Msg.dwLanguageId:=LANG_NEUTRAL;
源代码网推荐 Result:=MessageBoxIndirect(Msg);


源代码网推荐 end;
源代码网推荐
源代码网推荐 ---- 要想在消息框中显示自己的图标,先准备一个装有图标的资源文件,加在程序中,如{$R c:mydirmyres.res},在lStyle参数里除了所需的MB_标志外还要加上MB_USERICON标志,并在最后一个参数里写上资源文件中图标的名字,如果不想使用自定义的图标,可将最后一个参数设为nil。函数的其它用法和返回值的处理与Delphi提供的消息框一样。
源代码网推荐 ---- 强烈建议把自定义函数放在一个单元文件里,并把此文件放在Delphi的搜索路径如Lib下,以后只需要把此单元加在uses语句里,就可以直接使用自定义函数,非常方便。
源代码网推荐
源代码网推荐 ---- 上述自定义函数在Delphi4、Delphi5里运行通过。


源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华