利用Timer暫停350豪秒 |
尚未結案
|
yaoyao01tw
一般會員 發表:28 回覆:17 積分:9 註冊:2003-01-28 發送簡訊給我 |
各位前輩: 不知道要如何精確控制暫停時間,目前我的需求是一串文字
需要個別暫顯示字串內文字,也就是停止特定豪秒後顯示下一個字
目前採用的作法是A為顯示表單,B為暫停計算用表單
A會以ShowModel方式開啟B表單,然後在B表單中放置Timer元件
內計算暫停時間,然後透過下列程式碼計算時間差
Stop_Count := strtoint(inttostr(strtoint64(Now_time) - strtoint64(into_time))); // 計算進入時間千分之一秒 不知道這樣的做法是否正確,由無更好的作法否?
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 試試將顯示特定字串的程式碼寫在Timer元件的OnTimer事件中﹐用其Interval屬性和Enabled屬性直接控制﹐Interval屬性代表触發OnTimer事件的間隔時間﹐單位為千分秒﹐即值1000為1秒﹒Enabled屬性控制是否触發﹐True值為触發﹐False值為不触發﹒這樣就可以不用通過計算時間的程式碼來控制顯示﹒ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
unit Unit1; interface uses Windows, Controls, StdCtrls, Classes, Forms; type TShowTextEvent = procedure(Sender: TObject; Text: string) of object; TShowTextThread = class(TThread) protected FText: string; FInterval: Integer; FOnShowText: TShowTextEvent; procedure Execute; override; public constructor Create(Text: string; Interval: Integer); property OnShowText: TShowTextEvent read FOnShowText write FOnShowText; end; TForm1 = class(TForm) Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private procedure DO_ShowText(Sender: TObject; Text: string); end; var Form1: TForm1; implementation {$R *.dfm} { TShowTextThread } constructor TShowTextThread.Create(Text: string; Interval: Integer); begin inherited Create(True); FreeOnTerminate := True; FText := Text; FInterval := Interval; Resume; end; procedure TShowTextThread.Execute; var I, Timeout: Cardinal; S: string; begin for I := 1 to Length(FText) do begin Timeout := GetTickCount Cardinal(FInterval); while GetTickCount < Timeout do Application.ProcessMessages; if Assigned(FOnShowText) then begin S := Copy(FText, 1, I); FOnShowText(Self, S); end; end; Terminate; end; { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin with TShowTextThread.Create('0123456789', 350) do OnShowText := DO_ShowText; end; procedure TForm1.DO_ShowText(Sender: TObject; Text: string); begin Label1.Caption := Text; end; end. |
xzhifei
一般會員 發表:0 回覆:1 積分:0 註冊:2006-07-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |