如何在多執行序中動態宣告一個timer |
尚未結案
|
chungho_chang
一般會員 ![]() ![]() 發表:16 回覆:7 積分:4 註冊:2003-09-19 發送簡訊給我 |
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位前輩,我要在多執行序中動態宣告一個timer 並且在其ontime事件執行某件事,我應該要如何做? 請各位前輩教教我啊!~~謝謝
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Albertz
初階會員 ![]() ![]() 發表:2 回覆:57 積分:31 註冊:2002-09-05 發送簡訊給我 |
這是以前在學 Delphi 的 code, 在 BCB 中觀念也是一樣, 自己轉一下吧!
Enjoy it!
|
frankiech
中階會員 ![]() ![]() ![]() 發表:7 回覆:78 積分:52 註冊:2002-08-29 發送簡訊給我 |
|
Albertz
初階會員 ![]() ![]() 發表:2 回覆:57 積分:31 註冊:2002-09-05 發送簡訊給我 |
節錄自 expertsXexchange, 可以參考一下
type TMyThread = class(TThread) private FEvent: THandle; f2ndNum: Integer; f1stNum: Integer; public procedure Execute; override; procedure TerminateEx; end; TForm1 = class(TForm) TerminateThreadBtn: TButton; CreateThreadBtn: TButton; procedure TerminateThreadBtnClick(Sender: TObject); procedure CreateThreadBtnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; MyThread: TMyThread; implementation {$R *.DFM} procedure TMyThread.TerminateEx; begin Terminate; // tell thread to terminate SetEvent(FEvent); end; procedure TMyThread.Execute; begin FEvent := CreateEvent(nil, False, False, nil); try while not Terminated do begin // wait 3000ms or break if terminated (FEvent) if WaitForSingleObject(FEvent, 3000) = WAIT_OBJECT_0 then begin Break; end; MessageBeep(1); // ... one MessageBeep is enough f2ndNum := f1stNum; Break; // comment for polling end; finally CloseHandle(FEvent); end; end; procedure TForm1.TerminateThreadBtnClick(Sender: TObject); begin MyThread.TerminateEx; end; procedure TForm1.CreateThreadBtnClick(Sender: TObject); begin // create thread (suspended) MyThread := TMyThread.Create(false); end; end. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |