用Timer实现定时运行

2016-02-19 19:58 8 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐用Timer实现定时运行,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - 编程语言 】

  定时运行这个问题其实老早就接触到了,不过在上次的程序中似乎没有很好的解决这个问题,并且没有深入下去。这次再次碰到同样的问题,在查找了网上的资料以后,对这一问题有了比较深的理解。在程序中实现定时运行的思路:
  由timer控件实现
  两个timer控件,其中timer1负责每一分钟检查一次系统时间和设定时间的差值,如果两者相差5分钟,则继续检查,直到当相差时间小于5分钟,触发timer2,timer2的定时器时间就是这个时间间隔。当timer2到时以后,就触发主程序。具体代码

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    timer1.Interval:=60*1000;        //启动监控,每1分钟检查一次设定时间和当前时间
    timer1.Enabled:=true;
  end;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  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_timel_time) then   begin
    ss:=SecondsBetween(h_time,l_time); //求两个时间相差多少秒
    if ss5*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');
    // start...
    timer1.Enabled:=true;   //再次开始监控
  end;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  

来源:http://www.tulaoshi.com/n/20160219/1622422.html

延伸阅读
上网的朋友一定都用过网络蚂蚁(Net Ants)的吧?不知你在使用过程中有没有注意过,那就是如果你想调动两个蚂蚁为您效力是不可能的它总会把新运行的关闭。这点在VB中很容易实现: Private Sub Form_Load() If App.PrevInstance Then MsgBox "你已经运行这个应用程序了" End 注释: 退出新运行的程序 ...
http://tailsherry.javaeye.com/blog/176152 熟悉编写JavaScript的人,都习惯在页面写入setTimeOut来实现web页面的定时监控或事务处理。但是如何在Java服务端来实现这样一个监控机制呢?一般大家都会想到线程。但是一直以来,都没有亲身动手实践过。趁着工作间隙,自己也搬出一段代码来,与大家一起分享线程编程的神奇魔力。 &n...
标签: Web开发
在网页源代码中加入下面的代码,则该窗口将在20秒钟之后自动关闭!这与跳出式小窗口配合使用是再好不过啦!代码中“i=20”表示关闭的延迟时间为20秒,可任意修改。 以下是引用片段: script language="javascript" !-- function clock(){i=i-1 document.title="本窗口将在"+i+"秒后自动关闭!"; if(i0)setTimeout("clock();",1000); else...
标签: Web开发
为了提高网站的访问速度,我们往往采用生成静态的方式来实现,这样确实把网站的访问速度提高了很多.但定时生成就受到了一些局限性,大家如果有独立服务器的可以在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法很多.但使用起来简便容易的,我觉得还是先判断已经生成的首页文件的生成时间和现有时间之间的差值,如果满足某个...
有时候在开发应用程序时,希望控制程序运行唯一的实例。例如,最常用的mp3播放软件Winamp,由于它需要独占计算机中的音频设备,因此该程序只允许自身运行唯一的一个例程。在Visual C++的开发实践中,对于16位的Windows系统,应用程序的hPrevInstance句柄保存了应用程序上一个运行的实例,可以用该值来检查是否有实例运行;然而在32位Window...

经验教程

630

收藏

90
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部