<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網(wǎng) 大學(xué)生計(jì)算機(jī)學(xué)習(xí)社區(qū)

    CowNew開源團(tuán)隊(duì)

    http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks
    ?

    對話框控件的制作

    Delphi中有很多對話框組件,例如TopenDialogTfontDialog等。這些控件的特點(diǎn)就是雖然是不可視控件,但是在運(yùn)行時都有一個可視化的效果,比如TopenDialog的可視化效果就是一個打開對話框。我們這次將開發(fā)一個日期對話框控件,當(dāng)我們調(diào)用控件的Execute方法(不一定非要使用Execute方法,不過大部分對話框控件都是使用這個方法,我們也就按照慣例來了)時,就會彈出一個可以選擇日期的對話框,我們選擇一個日期后,點(diǎn)擊“確定”則Execute返回True,點(diǎn)擊“取消”則Execute返回False。我們可以讀取Date屬性來得到用戶選擇的日期,也可以修改此屬性來改變對話框的初始日期。

    1、新建一個對話框。在對話框窗體上放置一個TmonthCalendar組件,命名為Cal,窗體名稱改為FormDate。在窗體上放置兩個按鈕,一個按鈕的Caption為“確定(&O)”,ModalResultmrOk,一個按鈕的Caption為“取消(&C)”,ModalResultmrCancel。設(shè)計(jì)好的窗體如下圖所示:

    delphicomdev7-1.jpg

    2、為窗體添加兩個Public訪問級的方法:

    ??? function GetSelDate: TDate;

    ??? procedure SetInitDate(AValue: TDate);

    代碼如下:

    function TFormDate.GetSelDate: TDate;

    begin

    ? result := cal.Date;

    end;

    ?

    procedure TFormDate.SetInitDate(AValue: TDate);

    begin

    ? cal.Date := AValue;

    end;

    3、新建一個控件,派生自Tcomponent

    代碼如下:

    unit DateDialog;

    ?

    interface

    ?

    uses

    ? SysUtils, Classes, Controls, frmDlg;

    ?

    type

    ? TDateDialog = class(TComponent)

    ? private

    ??? FDlg: TFormDate;

    ??? function GetDate: TDate;

    ??? procedure SetDate(AValue: TDate);

    ? protected

    ? public

    ??? constructor Create(AOwner: TComponent);override;

    ??? function Execute: Boolean;

    ? published

    ??? property Date: TDate read GetDate write SetDate;

    ? end;

    ?

    procedure Register;

    ?

    implementation

    procedure Register;

    begin

    ? RegisterComponents('Linco', [TDateDialog]);

    end;

    constructor TDateDialog.Create(AOwner: TComponent);

    begin

    ? inherited Create(AOwner);

    ? FDlg := TFormDate.Create(self);

    end;

    ?

    function TDateDialog.Execute: Boolean;

    begin

    ? result := (FDlg.ShowModal = mrOK);

    end;

    ?

    function TDateDialog.GetDate: TDate;

    begin

    ? result := FDlg.GetSelDate;

    end;

    ?

    procedure TDateDialog.SetDate(AValue: TDate);

    begin

    ? FDlg.SetInitDate(AValue);

    end;

    end.

    代碼比較簡單就不多解釋了。

    思考題:

    1、做一個模仿TcolorDialog的對話框控件。

    posted on 2005-10-21 23:37 CowNew開源團(tuán)隊(duì) 閱讀(1459) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费人成网站7777视频| 亚洲日本在线播放| 国产亚洲AV无码AV男人的天堂 | 国产在线观看免费不卡| 亚洲精品无码专区久久久| 一区二区三区免费电影| 国产在线观看免费观看不卡| 亚洲宅男天堂在线观看无病毒| 一本天堂ⅴ无码亚洲道久久| 无码A级毛片免费视频内谢| 亚洲不卡AV影片在线播放| 国产亚洲国产bv网站在线| 在线涩涩免费观看国产精品 | 亚洲宅男永久在线| 色老头综合免费视频| 毛片a级三毛片免费播放| 久久精品国产亚洲AV无码娇色| 黄色免费在线网站| 国产综合亚洲专区在线| 免费看一级一级人妻片| 在线观看91精品国产不卡免费| 亚洲国产情侣一区二区三区| 免费国产在线视频| 亚洲男女性高爱潮网站| 免费无码VA一区二区三区| 国产亚洲精品一品区99热| 久久久久久国产精品免费无码| 国产亚洲综合成人91精品| 最近免费中文字幕大全免费 | 免费亚洲视频在线观看| 中文在线观看永久免费| 激情综合色五月丁香六月亚洲| 精品一区二区三区免费| 香蕉大伊亚洲人在线观看| 最近2019中文免费字幕| 特级一级毛片免费看| 亚洲成片观看四虎永久| 久久免费观看国产精品| 97se亚洲综合在线| 亚洲国产精品免费在线观看| 亚洲午夜爱爱香蕉片|