欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

在Delphi中定義自己圖標的消息框

在Delphi中定義自己圖標的消息框

更新時間:2022-04-27 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

應用程序在運行當中經(jīng)常要輸出各種即時信息,Delphi提供了多種形式的消息對話框可以滿足這些要求,盡管可以使用各種標志定制一個消息框,但仍不能將自己的圖標放在消息框內,也不能修改其標準行為去創(chuàng)建自己的消息框,其實通過調用函數(shù)MessageBoxIndirect()就很容易繞過這些明確的限制,這是一個功能很強、易于使用的函數(shù)。

---- 此函數(shù)在WINDOWS單元里面,文件位于Delphi安裝路徑Source\Rtl\Win里面,需要指出的是,Delphi的原代碼中它的返回值類型是BOOL型,而實質上它的返回值應為Integer。修改方法:在WINDOWS單元中找到此函數(shù)后,把BOOL改為Integer,共有三處要修改,然后在Delphi安裝路徑Lib中找到WINDOWS.DCU文件,把它改名或者刪除,并把修改后的WINDOWS.PAS源碼復制到Lib路徑中。

---- 該函數(shù)只有一個參數(shù),類型是TMsgBoxParams,它的結構及說明如下:

tagMSGBOXPARAMSA = packed record
cbSize: UINT;
{數(shù)據(jù)結構的長度}
hwndOwner: HWND;
{所有者窗口句柄}
hInstance: HINST;
{應用程序實例句柄}
lpszText: PAnsiChar;
{在消息框客戶區(qū)內顯示的文本}
lpszCaption: PAnsiChar;
{標題欄文本}
dwStyle: DWORD;
{確定消息框內按鈕和圖符
的數(shù)量及種類的MB_標志}
lpszIcon: PAnsiChar;
{從資源文件中取出的一個
圖符資源的名字}
dwContextHelpId: DWORD;
{指定幫助文本的ID號}
lpfnMsgBoxCallback: TPRMsgBoxCallback;
{當用戶按下HELP按鈕時調用的一個回
調函數(shù)}
dwLanguageId: DWORD;
{顯示在按鈕內文本的語言定義}
end;

---- 由于直接使用此函數(shù)比較復雜,我們可以自定義一個函數(shù)來封裝此函數(shù),對它進行簡化,在用法上盡量做到與Delphi的消息框相一致,自定義函數(shù)代碼如下:
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:\mydir\myres.res},在lStyle參數(shù)里除了所需的MB_標志外還要加上MB_USERICON標志,并在最后一個參數(shù)里寫上資源文件中圖標的名字,如果不想使用自定義的圖標,可將最后一個參數(shù)設為nil。函數(shù)的其它用法和返回值的處理與Delphi提供的消息框一樣。
---- 強烈建議把自定義函數(shù)放在一個單元文件里,并把此文件放在Delphi的搜索路徑如Lib下,以后只需要把此單元加在uses語句里,就可以直接使用自定義函數(shù),非常方便。

---- 上述自定義函數(shù)在Delphi4、Delphi5里運行通過。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 正定县| 信宜市| 四平市| 定兴县| 册亨县| 宜都市| 广汉市| 凤翔县| 卢龙县| 枣强县| 集贤县| 鄂尔多斯市| 泰兴市| 保德县| 桐乡市| 靖边县| 龙山县| 宁安市| 武穴市| 海兴县| 库伦旗| 绥德县| 兰坪| 惠州市| 全椒县| 广河县| 横峰县| 盐源县| 金门县| 北流市| 中方县| 鄱阳县| 崇明县| 广德县| 内丘县| 长白| 内黄县| 聊城市| 克拉玛依市| 齐齐哈尔市| 延庆县|