程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用Timer實現定時運行

用Timer實現定時運行

編輯:Delphi

  定時運行這個問題其實老早就接觸到了,不過在上次的程序中似乎沒有很好的解決這個問題,並且沒有深入下去。這次再次碰到同樣的問題,在查找了網上的資料以後,對這一問題有了比較深的理解。在程序中實現定時運行的思路:
  由timer控件實現
  兩個timer控件,其中timer1負責每一分鐘檢查一次系統時間和設定時間的差值,如果兩者相差5分鐘,則繼續檢查,直到當相差時間小於5分鐘,觸發timer2,timer2的定時器時間就是這個時間間隔。當timer2到時以後,就觸發主程序。具體代碼

  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');
    // start...
    timer1.Enabled:=true;   //再次開始監控
  end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved