我想实现一个定时器,每天某个固定时间,譬如说中午12:00或是00:00,就触发一个事件,怎样写定时器?有点象定时器。
最近小弟delphi新手入门,感觉delphi的帮助实在和MSDN的帮助相去甚远,哪位大虾再给个好点的教材、帮助?多谢了先!
最近小弟delphi新手入门,感觉delphi的帮助实在和MSDN的帮助相去甚远,哪位大虾再给个好点的教材、帮助?多谢了先!
解决方案 »
- 很搞!!是不是又是字符的问题?求各种喷!!!!
- 怎么在dll里写个窗口啊
- COM组件的奇怪问题?窗体总是跑到后面去!!
- 怪事:for循环中循环变量值竟然大于边境值
- 如何将数据库的内容导出到EXCEL表中,生成一个EXCEL文件,代码如何写?
- -=-=-=- (一定加到1000分)求IE浏览器 的访问机制!?-=-=-=-
- 我已经等了很久了,呜……
- 那有WORD的那种标尺控件啊!??
- 问个非技术问题,有谁知道?
- C++ Builder编译是代码比Delphi编译的代码更有效吗?
- 求免费的fastreport2.5 reportmachine 下载地址?
- 请高手讲解一下这几个关于对象创建释放的语句的区别
showmessage('dfasdf');
或者timer每秒触发一次,取得当前时间,如果条件相符就执行设定程序
方法是多种多样的。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (now()=strtotime('12:00')) or (now()=strtotime('00:00')) then
showmessage('快给我加分了');end;
我在C语言下的做法时:
1、取得当前时间;
2、计算得出到定时器设定时间的差并设为定时器的internal;
3、启动定时器;
4、在OnTimer事件里重启一次定时器。按照这个思路的话,如果一天一次闹钟,我一天处理一次就足够了。按照每秒算一次的方案,您一天得处理多少次?60*60*24!!!!
而且每秒起一次定时器的方法我也会的,只不过觉得太土,所以不好意思往上贴,所以才请教各位高人的。
var
nowtime:string;
begin
nowtime:= FormatDateTime('hh:nn:ss',now());
end;2、计算得出到定时器设定时间的差并设为定时器的internal;
(假设为12:00:00)var
thetime:string;
hh:integer;
nn:integer;
ss:integer;
thesec:integer; //总秒数
hh:=strtoint(copy(nowtime,1,2))-strtoint(copy(thetime,1,2));
nn:=strtoint(copy(nowtime,4,2))-strtoint(copy(thetime,4,2));
ss:=strtoint(copy(nowtime,7,2))-strtoint(copy(thetime,7,2)); thesec:=hh*3600+nn*60+ss;3.启动定时器;
timer1.enable:=true;4、在OnTimer事件里重启一次定时器。timer1.enable:=false;
timer1.enable:=true;
详细的自已要补充喔。
代码如下:
procedure TForm1.Timer1Timer(Sender: TObject);
var
time1:TDateTime;
str:String;
begin
time1 := Time;
str := TimeToStr(time1);
Label7.Caption := str;
if bSyncStartFlag then
begin
internal := internal + 1;
if internal = 60*10 then
begin
time1 := Time;
str := TimeToStr(time1);
Label7.Caption := str;
str := 'start sync at '+ str;
OutputLog(str);
dosometing;
internal := 0;
end; end
else
begin if str = '18:00:00' then
begin
bSyncStartFlag := true;
str := 'start sync at '+ str;
OutputLog(str);
dosometing;
end;
end;
以第一次事件从18:00:00开始计算,第二次就不准了,第二次的时间为18:10:03,说明漏了三个定时器消息,巨晕倒。
semigroup的主意倒是不错
你用timer客户就会买菜刀去的
e-mail:[email protected]