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

Virtual Key code 中 , " = 的代碼為何?

尚未結案
kadlac
一般會員


發表:18
回覆:30
積分:9
註冊:2004-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-02 16:10:33 IP:211.72.xxx.xxx 未訂閱
大家好, 請問Virtual Key code 中 , " = 的代碼為何? 我找遍了鍵盤VK值列表, 都找不到... 謝謝幫忙.
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-02 17:06:58 IP:218.15.xxx.xxx 未訂閱
您好:参考http://www.iocomp.com/support/helpvcl/ioc01593.htm
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key =VK_OEM_PLUS  then  //in win2000/xp 
//  if key =187 then <--in win9x
     showmessage('=');
end;
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-03 00:43:22 IP:61.230.xxx.xxx 未訂閱
kadlac 您好:    對於那些沒有預先定義過的按鍵,我們可以找鍵盤對照碼來查閱,或者自己動手做測試,您可以在任何一個含有 OnKeyDown 事件的物件中設定 OnKeyDown 事件,然後簡單的設定一行敘述,顯示出各個按鍵所對應的碼即可,您可以用 ShowMessage(Key) 的方式顯示出來,或者輸出到 Memo 物件上,例如:
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    ShowMessage(Key);
}
然後您可以記下這些按鍵名稱與對應的按鍵碼,之後您就可以在 OnKeyDown 事件內做比對的動作了,例如:
void __fastcall TForm1::Memo1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Shift.Contains(ssShift) && Key == 222){ // 若為 "
        .....
    }else if(Key == 188){ // 若為 ,
        .....
    }else if(Key == 187){ // 若為 =
        .....
    }
}
如果要讓程式更具可讀性,您可以將那些測得的按鍵碼自己設成巨集,例如: #define VK_EQUALMARK 0xBB #define VK_COMMA 0xBC #define VK_QUOTEMARK 0xDE 這樣子就可以用上述的 VK 值來做比對動作了。 7 天天敲鍵盤 v 時時按滑鼠 8
kadlac
一般會員


發表:18
回覆:30
積分:9
註冊:2004-07-23

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