沒有窗體怎麼使用定時器呢

2021-09-05 20:23:55 字數 2508 閱讀 2119

沒有窗體怎麼使用定時器呢? delphi / windows sdk/api

做那中簡單的程式的時候(不是控制台程式),想要使用api函式settimer來設定定時器,請問應該怎麼寫**呢,關鍵是那個hwnd應該是什麼呢,我沒有窗體怎麼設定

簡單的方法,就是用乙個隱藏的窗體,好像沒有窗體是不能成為乙個程式的,除非你做的是服務程式,你如果做過c寫windows程式就會對這一點有比較深的認識了。

畢竟時鐘也是乙個事件,必須用訊息佇列,有訊息佇列,一般就必須制定什麼窗體接受這個訊息佇列。  

看了你的要求,我想很多人碰到過你的想法,包括本人,但是你有這種想法,如果不是服務程式,只能說明你的程式體系沒有構思好,構思好了,就不會有你這種想法,或者說很容易找到解決方法。

到msdn看settimer的幫助

暈,   樓上的等於沒說嘛  

怎麼可能沒窗體呢?這是   delphi,至少也要個主窗體才能執行的.  

不過可以考慮自寫一線程作   timer   的嘛,   簡單得很  

procedure   ***.execute;  

begin  

while   not   terminated   do  

begin  

if   ftimerevent   :=   tevent.waitfor(finterval)   =   wrtimeout   then  

synchronize(dotimer);   你愛掛哪掛哪  

end;  

end;

delphi才不是必須要窗體呢,從project選單中選擇remove   from   project   就可以刪掉自動生成的窗體,**可以在工程檔案的benin     end.之間新增,這樣的話就沒有窗體了,明明用不到前台介面的話,再新增乙個隱藏的窗體進去,總是感覺有點多餘  

我要研究下樓上的**先

也可以使用多**定時器:  

timesetevent

program   project1;  

uses  

windows,dialogs;  

procedure   timerproc(hwindow:hwnd;   umsg:uint;   idevent:uint;   dwtime:dword);stdcall;  

begin  

showmessage('a');  

end;  

var   msg:   tmsg;  

begin  

settimer(hwnd(nil),1,3000,@timerproc);  

while   getmessage(msg,   0,   0,   0)   do   translatemessage(msg);  

killtimer(hwnd(nil),1);  

end.  

我是這樣寫的  

可是為什麼沒有顯示對話方塊?

視窗控制代碼是一定要的,   timer   要求進入訊息佇列

樓上說的好,「訊息佇列」,就是這個,沒有視窗,誰檢索這個呢?

仔細看看我1、2   樓的分析,不要想當然

分數什麼的怎麼處理?不知道啊

//測試通過  

program   project1;  

uses  

windows,dialogs;  

procedure   timerproc(hwindow:hwnd;   umsg:uint;   idevent:uint;   dwtime:dword);stdcall;  

begin  

showmessage('a');  

end;  

var   msg:   tmsg;  

begin  

settimer(hwnd(nil),1,3000,@timerproc);  

while   getmessage(msg,   0,   0,   0)   do  

begin  

translatemessage(msg);  

dispatchmessage(msg);   //〈〈〈add  

end;  

killtimer(hwnd(nil),1);  

end.

我的這個行嗎?  

procdure   tmythread.execute;  

var  

t1,t2:dword;  

begin  

t1:=gettickcount;  

t2:=gettickcount;  

while   ((t2-t1)<10000)   do  

begin  

...  

t2:=gettickcount;  

sleep(500);  

end;  

end;

handleallcoate

allocatehwnd   用這個

PHP沒有定時器?

確實,php沒有類似於js中的setinterval或者settimeout這樣的原生定時器相關的函式。但是我們可以通過其他方式來實現,比如使用declare。先來看看是如何實現的,然後我們再好好學習一下declare表示式到底是個什麼東西。function do tick str register...

qt ui怎麼定時 Qt 定時器Timer使用

1.新建gui工程,在主介面上新增乙個標籤label,並設定其顯示內容為 0000 00 00 00 00 00 星期日 2.在mainwindow.h中新增槽函式宣告。private slots void timerupdate 3.在mainwindow.cpp中新增 新增 include 的標...

定時器的使用

為了模擬翻頁場景 為了測試記憶體是否洩露 需要用定時任務重新整理介面。寫了個小例子。一上來是空白頁,3秒鐘後顯示第1頁,以後間隔3秒,頁號增加,直到第5頁。首先,在controlller標頭檔案中增加 nstimer timer 定時器變數。在實現 中建立乙個頁號變數 import list dem...