如何在多執行序中動態宣告一個timer |
尚未結案
|
chungho_chang
一般會員 發表:16 回覆:7 積分:4 註冊:2003-09-19 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位前輩,我要在多執行序中動態宣告一個timer 並且在其ontime事件執行某件事,我應該要如何做? 請各位前輩教教我啊!~~謝謝 >>< face="Verdana, Arial, Helvetica"> chungho_chang 你好: 小弟我覺得你的問題有點奇怪< >,是否能夠麻煩你詳細說明自己的目的、條件 、想法?? 或許會有更簡單的做法吧< > -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Albertz
初階會員 發表:2 回覆:57 積分:31 註冊:2002-09-05 發送簡訊給我 |
這是以前在學 Delphi 的 code, 在 BCB 中觀念也是一樣, 自己轉一下吧!
Enjoy it! < class="code">
procedure TMT.Execute;
begin
{ Place thread code here }
f1stNum := 10;
SetTimer(0, 0, 10000, @TMT.myTimerProc);
while GetMessage(wMsg, 0, 0, 0) do
begin
TranslateMessage(wMsg);
DispatchMessage(wMsg);
end;
end; procedure TMT.myTimerProc(hwnd : HWND; uMsg, idEvent : UINT; dwTime :DWORD);
begin
f2ndNum := f1stNum;
end;
|
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. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |