如何計算鍵盤同一按鍵down up 的時間 |
答題得分者是:暗黑破壞神
|
s9327076
一般會員 發表:2 回覆:3 積分:1 註冊:2007-01-20 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
coldwind1234
一般會員 發表:3 回覆:25 積分:20 註冊:2006-08-01 發送簡訊給我 |
Button 元件不是有 MouseDown & MouseUp 兩個事件可以使用
你可以在 MouseDown 事件下放入 DelayTime = GetTickCount(); 在 MouseUp事件下放入 DelayTime = GetTickCount() - DelayTime; 而DelayTime 就是你要的秒數了(單位是 ms) ===================引 用 s9327076 文 章=================== 各位大大好: ??????小弟我寫程式遇到了問題,就是我寫一支程式遇到的問題,我想讓電腦計算我按下某個按鍵時, ???? 然後彈起來的時間,例如我按 X,按著大約五秒放掉,然後讓電腦統計那5秒的時間, ??? 小弟我是有嘗試著用clock() 和 KeyDown Up ,下去做嘗試,但是我得到的數字都是0, ???? 不知道是我用錯語法,還是本身的想法就是個錯誤, ???? 可以 請高手們能替我解答嗎?小弟萬分感謝。 |
s9327076
一般會員 發表:2 回覆:3 積分:1 註冊:2007-01-20 發送簡訊給我 |
===================引 用 暗黑破壞神 文 章=================== 把你的寫法PO出來。 ======================================================= //--------------------------------------------------------------------------- #include #pragma hdrstop #include #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" double start,end,sum=0; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { switch(Key) { case 48: time_t start=time(NULL); break; /*case 49: time_t start=time(NULL); break; case 50: time_t start=time(NULL); break; case 51: time_t start=time(NULL); break; case 52: time_t start=time(NULL); break; case 53: time_t start=time(NULL); break; case 54: time_t start=time(NULL); break; case 55: time_t start=time(NULL); break; case 56: time_t start=time(NULL); break; case 57: time_t start=time(NULL); break;*/ } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift) { if (Key<48||Key>57) { Key=0; } time_t end=time(NULL); double tot_time=difftime(end,start); sum =tot_time; tot_time=0; Canvas->TextOut(200,50,sum); } //--------------------------------------------------------------------------- 版主你好,以上是我的寫法,再請你多指教。謝謝! |
coldwind1234
一般會員 發表:3 回覆:25 積分:20 註冊:2006-08-01 發送簡訊給我 |
#include
#pragma hdrstop #include "Unit1.h" #include //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; time_t start,end; <-----這行 //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { end=time(NULL); double tot_time=difftime(end,start); Canvas->TextOut(1,1,tot_time); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { start=time(NULL); } 其他應該都一樣,執行的結果正常 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
給你一個作業。
1.開個空的 Form 出來。把 keypreview 設成 true 2.加一個 Memo 進 form 中 3.在 keypress, keydown,keyup 的 event 中 分別去 memo 中記錄有這個 event 發生。 也就是說就只要寫一行 add 到這個 memo 中讓你去追發生什麼 event 就是了。 4.去按鍵看看。看你會發現 memo 中的記錄有什麼狀況。 這樣應該可以知道你的問題在那邊了吧。 這樣應該可以解決你的問題。 如果不行,我們再來討論。 |
harpist
資深會員 發表:3 回覆:251 積分:430 註冊:2002-10-03 發送簡訊給我 |
|
s9327076
一般會員 發表:2 回覆:3 積分:1 註冊:2007-01-20 發送簡訊給我 |
===================引 用 暗黑破壞神 文 章=================== 給你一個作業。 1.開個空的 Form 出來。把 keypreview 設成 true 2.加一個 Memo 進 form 中 3.在 keypress, keydown,keyup 的 event 中 分別去 memo 中記錄有這個 event 發生。 也就是說就只要寫一行 add 到這個 memo 中讓你去追發生什麼 event 就是了。 4.去按鍵看看。看你會發現 memo 中的記錄有什麼狀況。 這樣應該可以知道你的問題在那邊了吧。 這樣應該可以解決你的問題。 如果不行,我們再來討論。 ======================================================= 恩 謝謝版主,我試著做看看,嘗試過後再跟你討教。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |