如何控制TTimer元件時間 |
尚未結案
|
bigcome2004
一般會員 發表:28 回覆:19 積分:9 註冊:2004-02-17 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi bigcome2004, 你指的是1.控制開始執行時間,或是2.執行間格時間
若是1.
Now - 下一個執行時間 * 86400 得到下一次執行之時間差並
Timer1.Interval := 間格秒數 * 1000;
在 Ontimer 事件中,再重新計算下次執行時間間格 若是2.則
Timer1.Interval := 間格秒數 * 1000; ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
jumo
一般會員 發表:33 回覆:65 積分:24 註冊:2002-04-17 發送簡訊給我 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; ScrollBar1: TScrollBar; Timer2: TTimer; Button1: TButton; Button2: TButton; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); private { Private declarations } bt, et: Cardinal; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin bt := GetTickCount; Timer1.Enabled := True; Timer2.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); var TimeSec: TDateTime; begin et := GetTickCount; TimeSec := (Timer1.Interval - (et - bt)) / 86400000; if TimeSec <= 0 then begin BT := GetTickCount; MessageBox(0, Pchar('時間到了'), '計時器', MB_OK); end; end; procedure TForm1.Timer2Timer(Sender: TObject); var TimeSec: TDateTime; begin et := GetTickCount; TimeSec := (Timer1.Interval - (et - bt)) / 86400000; Label1.Caption := FormatDateTime('hh:nn:ss:zzz', TimeSec); end; procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := False; Timer2.Enabled := False; Label1.Caption := ''; end; procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin Timer1.Enabled := False; Timer1.Interval := ScrollPos * 1000; Label2.Caption := IntToStr(ScrollPos); BT := GetTickCount; Timer1.Enabled := True; end; end. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |