有關延遲函式的問題 |
尚未結案
|
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
請問各位大大
我要做一個 Delay( )的副程式,是用來做延遲用的。
但裏面不能用Sleep( ),因為延遲時會不接受控制。
但又不能用Application->ProcessMessages( ) ,
因為此程式中不斷的 call Delay( )這個副程式,所以當程式跑近一個鐘頭時
會出現 " Canvas can not be drawing " 的錯誤訊息。
雖然不確定錯誤是否由 Application->ProcessMessages( ) 產生,
但我把這行拿掉後,的確就沒再發生上面的情形。 所以,除了這兩個方法外,還有其他方法可以做delay,但又不會 hand 住不能控制的嗎?
想用 TIMER 做,但不知方法,還請大大賜教。 另外,有人遇過我說的那個error message嗎?是怎麼一回事呢?
|
liangnet
中階會員 發表:19 回覆:148 積分:83 註冊:2004-01-03 發送簡訊給我 |
|
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
damonlin 您好:
請參考如下的程式碼,再按照需求修改
.h void __fastcall delay(int s); .cpp #include "dateutils.hpp" void __fastcall TForm1::delay(int s) { TDateTime gTime,dTime; gTime = Now(); dTime = IncSecond(gTime,s); //s為延遲秒鐘數 while(gTime < dTime) { Application->ProcessMessages(); Caption = Caption.sprintf("現在時間:%s -> 停止時間:%s",gTime.FormatString("hh:nn:ss"),dTime.FormatString("hh:nn:ss")); gTime = Now(); } Caption = Caption.sprintf("時間到(%s)",dTime.FormatString("hh:nn:ss")); } void __fastcall TForm1::Button1Click(TObject *Sender) { delay(9); }希望對你有幫助 發表人 - |
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
|
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
|
HomeSound
中階會員 發表:44 回覆:178 積分:94 註冊:2002-08-31 發送簡訊給我 |
damonlin您好:
#include試試看這個,可能就沒問題了,跟Sleep函數用法一樣. --==多看.多學.多聽==--
------
--==多看.多學.多聽==-- |
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
damonlin您好:
啊!真不好意思忘了你可能不是用>< class="code">.h
void __fastcall Delay(DWORD Msecs);
.cpp
void __fastcall TForm1::Delay(DWORD Msecs)
{
DWORD BeginTime = GetTickCount();
do {
Application->ProcessMessages();
} while ((GetTickCount() - BeginTime) < Msecs);
}
希望對你有幫助 發表人 -
|
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
|
damonlin
一般會員 發表:6 回覆:8 積分:2 註冊:2004-03-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |