• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

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

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

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

        更新時間:2022-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

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

        ---- 此函數在WINDOWS單元里面,文件位于Delphi安裝路徑Source\Rtl\Win里面,需要指出的是,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:\mydir\myres.res},在lStyle參數里除了所需的MB_標志外還要加上MB_USERICON標志,并在最后一個參數里寫上資源文件中圖標的名字,如果不想使用自定義的圖標,可將最后一個參數設為nil。函數的其它用法和返回值的處理與Delphi提供的消息框一樣。
        ---- 強烈建議把自定義函數放在一個單元文件里,并把此文件放在Delphi的搜索路徑如Lib下,以后只需要把此單元加在uses語句里,就可以直接使用自定義函數,非常方便。

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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 青青在线久青草免费观看| 青青久久精品国产免费看| 精品无码人妻一区二区免费蜜桃| 国产啪亚洲国产精品无码| 无套内射无矿码免费看黄| 免费人成视频在线观看视频| 国产精品亚洲一区二区三区在线观看 | 亚洲午夜福利在线视频| 香蕉97超级碰碰碰免费公| 亚洲国产最大av| 国产高清视频在线免费观看| 国产成人久久精品亚洲小说| 免费a在线观看播放| 国产精品高清免费网站| 中文字幕亚洲无线码a| 成全视频免费观看在线看| 久久亚洲私人国产精品vA| 在线永久免费的视频草莓| 亚洲jjzzjjzz在线观看| 日韩伦理片电影在线免费观看| 免费亚洲视频在线观看| 亚洲精品无码鲁网中文电影| 91久久精品国产免费一区| 2020亚洲男人天堂精品| 亚洲成人国产精品| 国产成人精品无码免费看| 亚洲一区中文字幕在线电影网| 日本午夜免费福利视频| 最新亚洲成av人免费看| 亚洲国产高清在线精品一区| 国产成人精品免费视频大全五级 | 国产亚洲精品91| 亚洲成人免费在线| 好男人看视频免费2019中文| 国产成人精品免费大全| 亚洲熟妇色自偷自拍另类| 国产一区二区免费在线| 无码人妻丰满熟妇区免费| 亚洲日韩精品A∨片无码加勒比| 中文字幕不卡亚洲| 久久这里只有精品国产免费10|