線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:825
推到 Plurk!
推到 Facebook!

急! 如何抓到鍵盤兩個BYTE值

尚未結案
tsai5937
一般會員


發表:1
回覆:1
積分:0
註冊:2003-11-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-19 16:58:14 IP:61.218.xxx.xxx 未訂閱
目前正在開發POS系統,在鍵盤操作上無法解決,請大家幫幫忙; 鍵盤KEYDOWN ,應該會有兩個BYTE值,但是只能抓到一個BYTE值
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-19 22:36:22 IP:211.20.xxx.xxx 未訂閱
引言: 目前正在開發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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-20 09:38:53 IP:61.218.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-20 12:00:34 IP:211.74.xxx.xxx 未訂閱
啥是實際值!? 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
系統時間:2024-05-17 19:04:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!