procedure TForm1.Button1Click(Sender: TObject); begin timer1.Interval:=60*1000; //启动监控,每1分钟检查一次设定时间和当前时间 timer1.Enabled:=true; end;procedure TForm1.Timer1Timer(Sender: TObject); var l_time: TDateTime; h_time: TDateTime; ss:Int64; begin timer1.enabled:=false; h_time:= strtotime('10:30:00'); l_Time := time; //now是取当前的日期加时间,time只取当前时间 if (h_time>l_time) then begin ss:=SecondsBetween(h_time,l_time); //求两个时间相差多少秒 if ss<5*60 then begin //如果时间间隔小于5分钟定时启动timer2 timer1.Enabled:=false; showmessage('Inteval seconds:'+inttostr(ss)); timer2.Interval:=ss*1000; timer2.Enabled:=true; end; end else timer1.enabled:=true; end;procedure TForm1.Timer2Timer(Sender: TObject); begin timer2.enable:=false; showmessage('ok on time run the program'); timer1.Enabled:=true; //再次开始监控end;自己加入要执行程序的代码...或者用Timer2替掉也行实现
使用delphi2009手动设置多个时间段,定时执行扫描文件任务,不知道用哪种方法,定时器控件好像不是很好,为此定时成天纠结,请各位知道的不吝赐教,俺么感激不尽。。。。。最好有具体的代码,不然不能深入了解。。。。详细阐述下多线程的方案吧DELPHI里的定时器精度很差,一分钟一次还行,时间长了就不行了。 1\最好是用线程实现,线程中加上sleep(毫秒)2\用定时器,查到任务后开线程
delphi定时
最新推荐文章于 2020-08-20 18:23:29 发布