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

发表于:2007-05-25来源:作者:点击数: 标签:C++Builder教你制作如何使用
大凡热恋中的网虫都曾经陷入下列的困境:约好女/男朋友晚七点半在老地方等,却在计算机面前一直爬行到深夜,等反映过来,朋友早已拂尘而去,又得几天的功夫去陪礼道歉。朋友何不按以下步骤做一简单的闹钟,让你安安心心上网,大大方方约会。你只要在上网的时

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

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

序号    组件类型         组件名称             功能
            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();
            }

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

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)