沒有窗體怎麼使用定時器呢? 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...