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

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

        運用Delphi完成支持窗體的自定義函數

        運用Delphi完成支持窗體的自定義函數

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

        在利用Delphi發開應用時,我們可以引用大量的控件,象VCL,OCX,也可以引用開發環境中提供的大量函數,如ShowMessage,Application.MessageBox等,正是這些資源極大的提高了應用的開發效率,但是,在具體的開發過程中,會產生這樣一種需求,即如何將參數傳遞給窗體,最終用戶操作窗體后返回具體值,應用程序再要根據此返回值作進一步的處理,就象Application.MessageBox一樣工作。對此,筆者經過實踐,終于通過自定義函數的形式找到了實現方法。下面讓我們以實現類似Application.MessageBox功能的函數實例,看看如何定義支持窗體的自定義函數。

        ---- 第一步,建立函數的操作窗體;

        ---- 在Delphi建立一空白窗體(form),然后加入如下控件,兩個按鈕Button與一個標簽Label。

        Button1: TButton; Label1: TLabel; Button2: TButton;
        ---- 第二步,建立輸出函數;
        ---- 此函數為其他窗體具體調用的格式,我們就通過此函數來傳遞參數及返回窗體的操作結果。其形式為:

        ---- function ShowMsg(btn1, btn2, msg, titleMsg: string): Integer;

        ---- 其中,btn1,btn2準備接收兩個按鈕的標題,msg為顯示的提示信息,titleMsg為窗體的標明,并且,此函數的返回值為integer.

        ---- 注意:此聲明必須放在implementation語句之前,使其對外可見。

        ---- 第三步,實現輸出函數;

        ---- 具體代碼如下:

        function
        ShowMsg(btn1, btn2, msg, titleMsg: string): Integer; var frmshowMsg:
        TfrmShowMsg; begin frmShowMsg := TfrmShowMsg.Create(Application); //建立自定義函數使用的窗體
        with frmShowMsg do try button1.Caption := btn1; button2.Caption := btn2;
        Label1.Caption := msg; Caption := titleMsg; if ShowModal=mrOK then//顯示窗體
        result:=1 else result:=2; finally Free;//清除不再使用的窗體 end; end;
        ---- 作為例子,只是最簡單的功能實現。
        ---- 最后一步,刪除建立此窗體時生成的代碼;

        var frmShowMsg:TfrmShowMsg;
        ---- 下面讓我們看看如何使用上面實現的自定義函數。
        ---- 建立一個應用,通過delphi->File->New Application即可。

        ---- 然后,在此應用中加入剛才實現的單元文件。此時我們需要在Project Options中設定frmShowMsg為可用的窗體。用一個按鈕測試一下這個自定義函數ShowMsg。showMsg('正確','取消','真的退出程序嗎?','確認');

        ---- 運行,就可以看到支持窗體的自定義函數了,效果與Delphi中Application.MessageBox差不多。

        ---- 掌握此種實現方法后,我們就可以繼續構造出需多類似的通用函數,以完成不同的功能,如支持數據瀏覽的自定義函數,查看任意數據表等等。

        ---- 最后附完整的此自定義函數的程序清單:

        unit udfForm;
        interface
        uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
        Dialogs, StdCtrls;
        type TfrmShowMsg = class(TForm)  
        Button1: TButton;
        Label1: TLabel;
        Button2: TButton;
        private
        { Private declarations }
        public
        { Public declarations }  
        end;  
        function ShowMsg(btn1, btn2, msg, titleMsg: string): Integer;
        implementation  
        {$R *.DFM}
        function ShowMsg(btn1, btn2, msg, titleMsg: string): Integer;
        var  
        frmshowMsg: TfrmShowMsg;  
        begin
        frmShowMsg := TfrmShowMsg.Create(Application);
        with frmShowMsg do
        try
        button1.Caption := btn1;
        button2.Caption := btn2;  
        Label1.Caption := msg;
        Caption := titleMsg;  
        if ShowModal=mrOK
        then result:=1
        else result:=2;
        finally Free;
        end;
        end;
        end. 

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产亚洲精品一品区99热| 国产日产亚洲系列| 亚洲成人免费电影| 亚洲精品免费在线观看| 亚洲AV日韩精品久久久久久 | 成人亚洲国产va天堂| a拍拍男女免费看全片| 亚洲最新在线视频| 妻子5免费完整高清电视| 亚洲天堂一区二区三区| 思思99re66在线精品免费观看| 一个人看的免费视频www在线高清动漫| 国产成人免费ā片在线观看| 亚洲av无码一区二区三区四区| 国产成人免费A在线视频| 免费国产污网站在线观看不要卡| 亚洲一级特黄无码片| 东方aⅴ免费观看久久av | 亚洲国产精品无码久久一区二区| 97人妻精品全国免费视频 | 亚洲av无码专区国产乱码在线观看| 日本在线看片免费| 亚洲1区1区3区4区产品乱码芒果 | 免费无码A片一区二三区| 亚洲国产成人久久一区二区三区| 亚洲av午夜精品一区二区三区 | av无码国产在线看免费网站| 国产精品亚洲专区在线观看 | 亚洲中文字幕日本无线码| 国产一区二区三区在线免费观看 | 亚洲一级毛片在线播放| 国产大片免费观看中文字幕| 中文字幕永久免费| 亚洲国产精品综合久久久| 永久免费视频v片www| 中文字幕久无码免费久久| 亚洲一级毛片在线播放| 亚洲日韩中文字幕在线播放| 又黄又爽又成人免费视频| 日韩成人毛片高清视频免费看| 久久久久亚洲AV成人无码|