教你如何使用 C++Builder 制作闹钟

  • 来源: 赛迪网 作者: 若水   2008-04-22/14:21
  • 大凡热恋中的网虫都曾经陷入下列的困境:约好女/男朋友晚七点半在老地方等,却在计算机面前一直爬行到深夜,等反映过来,朋友早已拂尘而去,又得几天的功夫去陪礼道歉。朋友何不按以下步骤做一简单的闹钟,让你安安心心上网,大大方方约会。你只要在上网的时候打开此应用程序,设置好约会时间(当然也可以是默认好的)即可。时间一到,音乐响起,快去约会吧。

    本闹钟程序有以下组件组成:

    序号    组件类型         组件名称             功能
    1       Tlabel           l_Clock_1       显示“输入日期”
    2     TdateTimePicker    dtp_Clock_1         选择日期
    3      Tlabel            l_Clock_2       显示“输入时间”
    4     TdateTimePacker    tdp_Clock_2         选择时间
    5     TmediaPlayer        mp_Clock           演奏音乐
    6     Tbutton            b_Clock_Open        重新打开
    7     Ttimer             t_Clock             定时检测
    8     Tbutton            b_Clock_Close     关闭应用程序

    屏幕组件一览表

    屏幕组件一览图

    说明:dtp_Clock_1 的Kind属性设置为dtkDate , dtp_Clock_2 的Kind属性设置为dtkTime,mp_Clock 的FileName属性设置为你主机上存在的任何mid、wav、avi文件。t_Clock 的Interval属性设置为10。

    事件说明如下:

    ①、 t_Clock的OnTimer :
    {
    //按时触发演示程序
    struct date d;
    struct time t;
    AnsiString thour,tmin,tsec;
    int dyear;
    int dintyear;
    int dmon,dday;
    AnsiString tinthour,tintmin,tintsec;
    AnsiString dintmon,dintday;
    //取当天日期
    getdate(&d);
    dyear=d.da_year;
    dday=d.da_day;
    dmon=d.da_mon;
    dintyear=StrToInt(dint.SubString(1,2));
    dintmon=dint.SubString(4,2);
    dintday=dint.SubString(7,2);
    //取当时时间
    gettime(&t);
    thour=AnsiString(t.ti_hour);
    tmin=AnsiString(t.ti_min);
    //tsec=AnsiString(t.ti_sec);
    //tint=AnsiString(DateTimePicker1- >Time);
    tinthour=tint.SubString(10,2);
    tintmin=tint.SubString(13,2);
    //tintsec=tint.SubString(16,2);
    //闹钟服务功能
    if ((StrToInt(thour)==StrToInt(tinthour))&&
    (StrToInt(tmin)==StrToInt(tintmin))
    &&(StrToInt(AnsiString(dyear).SubString(3,2))
    ==dintyear)&&(StrToInt(dmon)==StrToInt(dintmon))
    &&(StrToInt(dday)==StrToInt(dintday)))
    {
    dTimer- >Enabled=false;
    MediaPlayer1- >Open();
    MediaPlayer1- >Play();
    }
    }
    ②、 b_Clock_Open 的OnClick:
    {
    t_Clock- >Enabled=true; 
    }
    ③、 b_Clock_Close的OnClick
    {
    Application- >Terminate();
    }

    当然此程序还可以拓展、细化,如我仅将触发条件检测到分,当然它完全可以检测到秒,也可以仅检测到时。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多