做个闹钟程序叫阿洛起床

阿洛 发表于 2008-10-08 16:55:55

好吧,昨晚的运气非常非常令人觉得诧异。嗯,先是父母出差不在家;然后临睡时发现小灵通坏了,无法开机;在然后一检查闹钟……也坏了,无法定时。真绝……今天1、2节有课,我这可怎么起床啊………………

于是,解决之道是打开Delphi,做一个闹钟程序,不关机,定时让程序叫我起床……一晚上醒来3、4次看时间到了没,唉唉,我何苦不自信我的程序呢,今儿早上可不是准点把我闹醒了嘛……

代码如下,简单的功能而已,窗体没处理,是个傻瓜化的普通窗体。
功能么,只是在固定的时间播放音乐。播放音乐的代码么,首先在uses 里加上MMSystem,然后么,真正播放的代码只一句:PlaySound('c:\白蓮還真.wav', 0,SND_ASYNC++SND_LOOP); //执行播放音乐的语句

哎呀呀。我放了个定时器,每1000毫秒检查一次系统时间,如果到了该起床的时间,就播放音乐并且定时器失效。定时器的代码如下:

procedure TForm1.Timer1Timer(Sender: TObject);
var
wakeupTime: TDateTime;
begin
 wakeupTime:=strtodatetime('2008-10-8 06:20:30');
if (date +time) >= wakeupTime then  //wakeupTime为起床的时间.为TDateTime类型
begin
PlaySound('c:\白蓮還真.wav', 0,SND_ASYNC++SND_LOOP); //执行播放音乐的语句,并且循环播放,播到我起床关闭程序为止= =
 timer1.Enabled :=false;//定时器失效
 end;
end;


这里要稍提到的是一开始我犯的错误。就是只判断当前时间,没判断当前日期。没错!各位看到的没错,我设置的是早上06:20:30(早上6点20分30秒……嗯,30秒……),如果没有设置日期的判断的话,程序一比较,哦,当前已经超过了早上6点20分30秒了嘛,于是起床起床起床~~白莲还真放起来~~~放起来放起来~~~(米错!我用素素的配乐来当起床钟……)…………所,所以,程序必须要同时判断日期与时间……这才有了这两句的设置:

wakeupTime:=strtodatetime('2008-10-8 06:20:30');//设置起床的时间为2008年10月8早上6点20分30分,strtodatetime函数,是将字符型的时间参数(str)转换成程序能识别的日期时间型参数(Tdatetime)
if (date +time) >= wakeupTime then  //wakeupTime为起床的时间.为TDateTime类型


唉唉…………有这样那样的错,所以这个简单的只有几句的程序,硬是做了半小时……劣者无能啊……这几句代码,发上来给编程的好友们一哂。

关键词(Tag): 编程 闹钟


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论


  • sakiel
    2008-10-18 19:25:08 匿名 119.32.*.*

    = = 阿洛…………
    如果是我的话,想着明天要6点半要起来,那么一般5点45分我就会自动醒了……
    一晚上醒来3、4次,你还写程序来干什么…………

  • 2008-10-20 16:30:25

    咬地板……………………所以我不做程序员,因为一旦开始就忍不住会继续……程序没做完就停不下来……咬地板……


  • sakiel
    2008-10-29 13:17:55 匿名 58.63.*.*

    没想到你对程序如此有爱啊~

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定