急! 如何抓到鍵盤兩個BYTE值 |
尚未結案
|
tsai5937
一般會員 發表:1 回覆:1 積分:0 註冊:2003-11-09 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 目前正在開發POS系統,在鍵盤操作上無法解決,請大家幫幫忙; 鍵盤KEYDOWN ,應該會有兩個BYTE值,但是只能抓到一個BYTE值tsai5937 你好 我試一下是可以抓到兩Byte的值,但其High Byte值一直都是00 放個TEdit及TMemo然後在Edit1.ObKeyDown事件寫下列程式 procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Memo1.Lines.Add(IntToStr(WordRec(Key).Lo) ':' IntTostr(WordRec(Key).hi)); end; 最後看看Memo1的內容是 xxx:0 的格式,表示High Byte值都是0 不知你說的是這個嗎?發表人 - chance36 於 2004/05/19 22:39:53 |
tsai5937
一般會員 發表:1 回覆:1 積分:0 註冊:2003-11-09 發送簡訊給我 |
Chance36 您好: 抱歉, 我沒把問題說清楚,您的方式並未抓到實際值,
ex.TMemo上按鍵盤會顯示k1,k2,k3,b1,b2,c1,...兩個byte;
TEdit上按鍵盤則顯示k,k,k,b,b,c..........一個byte;
但依您的方式則抓到75:0,75:0,28:0,74:0,...,會有重複值,
需要的是抓到k1,k2,k3,b1,b2,c1...值,這些值都是唯一。
再麻煩一下!!! 發表人 - tsai5937 於 2004/05/20 09:51:07
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
啥是實際值!?
WM_KEYDOWN
nVirtKey = (int) wParam; // virtual-key code
lKeyData = lParam; // key data
你要的是哪1個!?或則是輸入中文時查詢中文字碼!?或則是有否與Ctrl&Alt..一起按!? 如果你要的是lp的參數值..
public procedure WMKeyDown(var Msg:TMessage);message WM_KEYDOWN; end; procedure TForm1.WMKeyDown(var Msg:TMessage); begin end;學而時習之不亦樂乎! 發表人 - jest0024 於 2004/05/20 12:02:16 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |