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

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

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

    如鵬網 大學生計算機學習社區

    CowNew開源團隊

    http://www.cownew.com 郵件請聯系 about521 at 163.com

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

    對話框控件的制作

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

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

    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開源團隊 閱讀(1459) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 日韩av无码免费播放| 久久久久se色偷偷亚洲精品av| 羞羞漫画页面免费入口欢迎你| 歪歪漫画在线观看官网免费阅读| 亚洲春色另类小说| 国产va精品免费观看| 2017亚洲男人天堂一| 麻豆国产VA免费精品高清在线 | 亚洲欧洲校园自拍都市| 免费无码VA一区二区三区| 亚洲黄网在线观看| 免费一本色道久久一区| 亚洲国产欧美日韩精品一区二区三区 | 4hu四虎最新免费地址| 亚洲精品美女久久久久| 午夜福利不卡片在线播放免费| 91午夜精品亚洲一区二区三区| 日韩欧美一区二区三区免费观看| 亚洲日韩AV一区二区三区中文| 国产成人免费手机在线观看视频 | 日韩精品无码一区二区三区免费| 亚洲一区二区三区首页| 99无码人妻一区二区三区免费| 亚洲人成无码网站在线观看| 免费A级毛片在线播放不收费| 男女一边桶一边摸一边脱视频免费| 亚洲成AV人在线播放无码| 国产成人精品免费视| 亚洲AV无码成人精品区狼人影院| 亚洲精品无码久久不卡| 久久大香香蕉国产免费网站 | 免费视频中文字幕| 黄色网址免费在线观看| 亚洲精品永久www忘忧草| 成人毛片18女人毛片免费视频未| 一级毛片a免费播放王色电影| 久久久婷婷五月亚洲97号色| 男女啪啪永久免费观看网站| 中国国产高清免费av片| 国产精品亚洲综合久久| 亚洲一区二区三区偷拍女厕|