VK_LBUTTON Left mouse button
VK_RBUTTON Right mouse button
VK_CANCEL Control+Break
VK_MBUTTON Middle mouse button
VK_BACK         Backspace key
VK_TAB      Tab key
VK_CLEAR Clear key
VK_RETURN Enter key
VK_SHIFT Shift key
VK_CONTROL Ctrl key
VK_MENU         Alt key
VK_PAUSE Pause key
VK_CAPITAL Caps Lock key
VK_KANA         Used with IME
VK_HANGUL Used with IME
VK_JUNJA Used with IME
VK_FINAL Used with IME
VK_HANJA Used with IME
VK_KANJI Used with IME
VK_CONVERT Used with IMEVK_NONCONVERT Used with IME
VK_ACCEPT Used with IME
VK_MODECHANGE Used with IME
VK_ESCAPE Esc key
VK_SPACE Space bar
VK_PRIOR Page Up key
VK_NEXT         Page Down key
VK_END         End key
VK_HOME  Home key
VK_LEFT  Left Arrow key
VK_UP         Up Arrow key
VK_RIGHT Right Arrow key
VK_DOWN         Down Arrow key
VK_SELECT Select key
VK_PRINT Print key (keyboard-specific)
VK_EXECUTE Execute key
VK_SNAPSHOT Print Screen key
VK_INSERT Insert key
VK_DELETE Delete key
VK_HELP  Help keyVK_LWIN         Left Windows key (Microsoft keyboard)
VK_RWIN         Right Windows key (Microsoft keyboard)
VK_APPS         Applications key (Microsoft keyboard)
VK_NUMPAD0 0 key (numeric keypad)
VK_NUMPAD1 1 key (numeric keypad)
VK_NUMPAD2 2 key (numeric keypad)
VK_NUMPAD3 3 key (numeric keypad)
VK_NUMPAD4 4 key (numeric keypad)
VK_NUMPAD5 5 key (numeric keypad)
VK_NUMPAD6 6 key (numeric keypad)
VK_NUMPAD7 7 key (numeric keypad)
VK_NUMPAD8 8 key (numeric keypad)
VK_NUMPAD9 9 key (numeric keypad)VK_MULTIPLY Multiply key (numeric keypad)
VK_ADD Add key (numeric keypad)
VK_SEPARATOR Separator key (numeric keypad)
VK_SUBTRACT Subtract key (numeric keypad)
VK_DECIMAL Decimal key (numeric keypad)
VK_DIVIDE Divide key (numeric keypad)
VK_F1           F1 key
VK_F2    F2 key
VK_F3    F3 key
VK_F4    F4 key
VK_F5    F5 key
VK_F6    F6 key
VK_F7    F7 key
VK_F8    F8 key
VK_F9    F9 key
VK_F10    F10 key
VK_F11    F11 key
VK_F12   F12 key
VK_F13         F13 key
VK_F14    F14 key
VK_F15   F15 keyVK_F16         F16 key
VK_F17         F17 key
VK_F18     F18 key
VK_F19         F19 key
VK_F20   F20 key
VK_F21   F21 key
VK_F22         F22 key
VK_F23    F23 key
VK_F24   F24 key
VK_NUMLOCK Num Lock key
VK_SCROLL Scroll Lock key
VK_LSHIFT Left Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_RSHIFT Right Shift key  (only used with GetAsyncKeyState and GetKeyState)
VK_LCONTROL Left Ctrl key  (only used with GetAsyncKeyState and GetKeyState)
VK_RCONTROL Right Ctrl key  (only used with GetAsyncKeyState and GetKeyState)VK_LMENU Left Alt key  (only used with GetAsyncKeyState and GetKeyState)
VK_RMENU Right Alt key  (only used with GetAsyncKeyState and GetKeyState)
VK_PROCESSKEY Process key
VK_ATTN         Attn key
VK_CRSEL CrSel key
VK_EXSEL ExSel key
VK_EREOF Erase EOF key
VK_PLAY         Play key
VK_ZOOM         Zoom key
VK_NONAME Reserved for future use
VK_PA1         PA1 key
VK_OEM_CLEAR Clear keyvk_Lbutton=$01
vk_Rbutton=$02
vk_Cancel=$03
vk_Mbutton=$04
vk_Back=$08
vk_Tab=$09
vk_Clear=$0C
vk_Return=$0D
vk_Shift=$10
vk_Control=$11
vk_Menu=$12
vk_Pause= $13
vk_Capital=$14
vk_Escape=$1B
vk_Space=$20
vk_Prior=$21
vk_Next=$22
vk_End=$23
vk_Home=$24
vk_Left=$25
vk_Up=$26
vk_Right=$27
vk_Down=$28
vk_Select=$29
vk_Print=$2A
vk_Execute=$2B
vk_Snapshot=$2C
vk_Copy=$2C
vk_Insert=$2D
vk_Delete=$2E
vk_Help=$2F
vk_NumPad0=$60
vk_NumPad1=$61
vk_NumPad2=$62
vk_NumPad3=$63
vk_NumPad4=$64
vk_NumPad5=$65
vk_NumPad6=$66
vk_NumPad7=$67
vk_NumPad8=$68
vk_NumPad9=$69
vk_Multiply=$6A
vk_Add=$6B
vk_Separator=$6C
vk_Subtract=$6D
vk_Decimal=$6E
vk_Divide=$6F
vk_F1=$70
vk_F2=$71
vk_F3=$72
vk_F4=$73
vk_F5=$74
vk_F6=$75
vk_F7=$76
vk_F8=$77
vk_F9=$78
vk_F10=$79
vk_F11=$7A
vk_F12=$7B
vk_F13=$7C
vk_F14=$7D
vk_F15=$7E
vk_F16=$7F
vk_F17=$80
vk_F18=$81
vk_F19=$82
vk_F20=$83
vk_F21=$84
vk_F22=$85
vk_F23=$86
vk_F24=$87
vk_NumLock=$90
vk_Scroll=$91
vk_A 到 vk_Z的键值与后面字符A到Z相同
vk_0 到 vk_9的键值与后面字符’0’到’9’相同

解决方案 »

  1.   

    使用
    procedure TfrmCbywcl.edtDnhKeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(VK_BACK),
        char(VK_RETURN), char(VK_LEFT), char(VK_UP), char(VK_RIGHT), char(VK_DOWN)]) then
        key := #0;
      if (key = #13) and (edtDwbh.readonly = true) then
      begin
        //
      end;
    end;
      

  2.   

    {$EXTERNALSYM VK_LBUTTON}
      VK_LBUTTON = 1;
      {$EXTERNALSYM VK_RBUTTON}
      VK_RBUTTON = 2;
      {$EXTERNALSYM VK_CANCEL}
      VK_CANCEL = 3;
      {$EXTERNALSYM VK_MBUTTON}
      VK_MBUTTON = 4;  { NOT contiguous with L & RBUTTON }
      {$EXTERNALSYM VK_BACK}
      VK_BACK = 8;
      {$EXTERNALSYM VK_TAB}
      VK_TAB = 9;
      {$EXTERNALSYM VK_CLEAR}
      VK_CLEAR = 12;
      {$EXTERNALSYM VK_RETURN}
      VK_RETURN = 13;
      {$EXTERNALSYM VK_SHIFT}
      VK_SHIFT = $10;
      {$EXTERNALSYM VK_CONTROL}
      VK_CONTROL = 17;
      {$EXTERNALSYM VK_MENU}
      VK_MENU = 18;
      {$EXTERNALSYM VK_PAUSE}
      VK_PAUSE = 19;
      {$EXTERNALSYM VK_CAPITAL}
      VK_CAPITAL = 20;
      {$EXTERNALSYM VK_KANA }
      VK_KANA = 21;
      {$EXTERNALSYM VK_HANGUL }
      VK_HANGUL = 21;
      {$EXTERNALSYM VK_JUNJA }
      VK_JUNJA = 23;
      {$EXTERNALSYM VK_FINAL }
      VK_FINAL = 24;
      {$EXTERNALSYM VK_HANJA }
      VK_HANJA = 25;
      {$EXTERNALSYM VK_KANJI }
      VK_KANJI = 25;
      {$EXTERNALSYM VK_CONVERT }
      VK_CONVERT = 28;
      {$EXTERNALSYM VK_NONCONVERT }
      VK_NONCONVERT = 29;
      {$EXTERNALSYM VK_ACCEPT }
      VK_ACCEPT = 30;
      {$EXTERNALSYM VK_MODECHANGE }
      VK_MODECHANGE = 31;
      {$EXTERNALSYM VK_ESCAPE}
      VK_ESCAPE = 27;
      {$EXTERNALSYM VK_SPACE}
      VK_SPACE = $20;
      {$EXTERNALSYM VK_PRIOR}
      VK_PRIOR = 33;
      {$EXTERNALSYM VK_NEXT}
      VK_NEXT = 34;
      {$EXTERNALSYM VK_END}
      VK_END = 35;
      {$EXTERNALSYM VK_HOME}
      VK_HOME = 36;
      {$EXTERNALSYM VK_LEFT}
      VK_LEFT = 37;
      {$EXTERNALSYM VK_UP}
      VK_UP = 38;
      {$EXTERNALSYM VK_RIGHT}
      VK_RIGHT = 39;
      {$EXTERNALSYM VK_DOWN}
      VK_DOWN = 40;
      {$EXTERNALSYM VK_SELECT}
      VK_SELECT = 41;
      {$EXTERNALSYM VK_PRINT}
      VK_PRINT = 42;
      {$EXTERNALSYM VK_EXECUTE}
      VK_EXECUTE = 43;
      {$EXTERNALSYM VK_SNAPSHOT}
      VK_SNAPSHOT = 44;
      {$EXTERNALSYM VK_INSERT}
      VK_INSERT = 45;
      {$EXTERNALSYM VK_DELETE}
      VK_DELETE = 46;
      {$EXTERNALSYM VK_HELP}
      VK_HELP = 47;
    { VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
    { VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
      {$EXTERNALSYM VK_LWIN}
      VK_LWIN = 91;
      {$EXTERNALSYM VK_RWIN}
      VK_RWIN = 92;
      {$EXTERNALSYM VK_APPS}
      VK_APPS = 93;
      {$EXTERNALSYM VK_NUMPAD0}
      VK_NUMPAD0 = 96;
      {$EXTERNALSYM VK_NUMPAD1}
      VK_NUMPAD1 = 97;
      {$EXTERNALSYM VK_NUMPAD2}
      VK_NUMPAD2 = 98;
      {$EXTERNALSYM VK_NUMPAD3}
      VK_NUMPAD3 = 99;
      {$EXTERNALSYM VK_NUMPAD4}
      VK_NUMPAD4 = 100;
      {$EXTERNALSYM VK_NUMPAD5}
      VK_NUMPAD5 = 101;
      {$EXTERNALSYM VK_NUMPAD6}
      VK_NUMPAD6 = 102;
      {$EXTERNALSYM VK_NUMPAD7}
      VK_NUMPAD7 = 103;
      {$EXTERNALSYM VK_NUMPAD8}
      VK_NUMPAD8 = 104;
      {$EXTERNALSYM VK_NUMPAD9}
      VK_NUMPAD9 = 105;
      {$EXTERNALSYM VK_MULTIPLY}
      VK_MULTIPLY = 106;
      {$EXTERNALSYM VK_ADD}
      VK_ADD = 107;
      {$EXTERNALSYM VK_SEPARATOR}
      VK_SEPARATOR = 108;
      {$EXTERNALSYM VK_SUBTRACT}
      VK_SUBTRACT = 109;
      {$EXTERNALSYM VK_DECIMAL}
      VK_DECIMAL = 110;
      {$EXTERNALSYM VK_DIVIDE}
      VK_DIVIDE = 111;
      {$EXTERNALSYM VK_F1}
      VK_F1 = 112;
      {$EXTERNALSYM VK_F2}
      VK_F2 = 113;
      {$EXTERNALSYM VK_F3}
      VK_F3 = 114;
      {$EXTERNALSYM VK_F4}
      VK_F4 = 115;
      {$EXTERNALSYM VK_F5}
      VK_F5 = 116;
      {$EXTERNALSYM VK_F6}
      VK_F6 = 117;
      {$EXTERNALSYM VK_F7}
      VK_F7 = 118;
      {$EXTERNALSYM VK_F8}
      VK_F8 = 119;
      {$EXTERNALSYM VK_F9}
      VK_F9 = 120;
      {$EXTERNALSYM VK_F10}
      VK_F10 = 121;
      {$EXTERNALSYM VK_F11}
      VK_F11 = 122;
      {$EXTERNALSYM VK_F12}
      VK_F12 = 123;
      {$EXTERNALSYM VK_F13}
      VK_F13 = 124;
      {$EXTERNALSYM VK_F14}
      VK_F14 = 125;
      {$EXTERNALSYM VK_F15}
      VK_F15 = 126;
      {$EXTERNALSYM VK_F16}
      VK_F16 = 127;
      {$EXTERNALSYM VK_F17}
      VK_F17 = 128;
      {$EXTERNALSYM VK_F18}
      VK_F18 = 129;
      {$EXTERNALSYM VK_F19}
      VK_F19 = 130;
      {$EXTERNALSYM VK_F20}
      VK_F20 = 131;
      {$EXTERNALSYM VK_F21}
      VK_F21 = 132;
      {$EXTERNALSYM VK_F22}
      VK_F22 = 133;
      {$EXTERNALSYM VK_F23}
      VK_F23 = 134;
      {$EXTERNALSYM VK_F24}
      VK_F24 = 135;
      {$EXTERNALSYM VK_NUMLOCK}
      VK_NUMLOCK = 144;
      {$EXTERNALSYM VK_SCROLL}
      VK_SCROLL = 145;
    { VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.
      Used only as parameters to GetAsyncKeyState() and GetKeyState().
      No other API or message will distinguish left and right keys in this way. }
      {$EXTERNALSYM VK_LSHIFT}
      VK_LSHIFT = 160;
      {$EXTERNALSYM VK_RSHIFT}
      VK_RSHIFT = 161;
      {$EXTERNALSYM VK_LCONTROL}
      VK_LCONTROL = 162;
      {$EXTERNALSYM VK_RCONTROL}
      VK_RCONTROL = 163;
      {$EXTERNALSYM VK_LMENU}
      VK_LMENU = 164;
      {$EXTERNALSYM VK_RMENU}
      VK_RMENU = 165;
      {$EXTERNALSYM VK_PROCESSKEY}
      VK_PROCESSKEY = 229;
      {$EXTERNALSYM VK_ATTN}
      VK_ATTN = 246;
      {$EXTERNALSYM VK_CRSEL}
      VK_CRSEL = 247;
      {$EXTERNALSYM VK_EXSEL}
      VK_EXSEL = 248;
      {$EXTERNALSYM VK_EREOF}
      VK_EREOF = 249;
      {$EXTERNALSYM VK_PLAY}
      VK_PLAY = 250;
      {$EXTERNALSYM VK_ZOOM}
      VK_ZOOM = 251;
      {$EXTERNALSYM VK_NONAME}
      VK_NONAME = 252;
      {$EXTERNALSYM VK_PA1}
      VK_PA1 = 253;
      {$EXTERNALSYM VK_OEM_CLEAR}
      VK_OEM_CLEAR = 254;
      

  3.   

    VK_LBUTTON = 1;
    VK_RBUTTON = 2;
    VK_CANCEL = 3;
    VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }
    VK_BACK = 8;
    VK_TAB = 9;
    VK_CLEAR = 12;
    VK_RETURN = 13;
    VK_SHIFT = $10;
    VK_CONTROL = 17;
    VK_MENU = 18;
    VK_PAUSE = 19;
    VK_CAPITAL = 20;
    VK_KANA = 21;
    VK_HANGUL = 21;
    VK_JUNJA = 23;
    VK_FINAL = 24;
    VK_HANJA = 25;
    VK_KANJI = 25;
    VK_CONVERT = 28;
    VK_NONCONVERT = 29;
    VK_ACCEPT = 30;
    VK_MODECHANGE = 31;
    VK_ESCAPE = 27;
    VK_SPACE = $20;
    VK_PRIOR = 33;
    VK_NEXT = 34;
    VK_END = 35;
    VK_HOME = 36;
    VK_LEFT = 37;
    VK_UP = 38;
    VK_RIGHT = 39;
    VK_DOWN = 40;
    VK_SELECT = 41;
    VK_PRINT = 42;
    VK_EXECUTE = 43;
    VK_SNAPSHOT = 44;
    VK_INSERT = 45;
    VK_DELETE = 46;
    VK_HELP = 47;
    { VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
    { VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
    VK_LWIN = 91;
    VK_RWIN = 92;
    VK_APPS = 93;
    VK_NUMPAD0 = 96;
    VK_NUMPAD1 = 97;
    VK_NUMPAD2 = 98;
    VK_NUMPAD3 = 99;
    VK_NUMPAD4 = 100;
    VK_NUMPAD5 = 101;
    VK_NUMPAD6 = 102;
    VK_NUMPAD7 = 103;
    VK_NUMPAD8 = 104; VK_NUMPAD9 = 105;
    VK_MULTIPLY = 106;
    VK_ADD = 107;
    VK_SEPARATOR = 108;
    VK_SUBTRACT = 109;
    VK_DECIMAL = 110;
    VK_DIVIDE = 111;
    VK_F1 = 112;
    VK_F2 = 113;
    VK_F3 = 114;
    VK_F4 = 115;
    VK_F5 = 116;
    VK_F6 = 117;
    VK_F7 = 118;
    VK_F8 = 119;
    VK_F9 = 120;
    VK_F10 = 121;
    VK_F11 = 122;
    VK_F12 = 123;
    VK_F13 = 124;
    VK_F14 = 125;
    VK_F15 = 126;
    VK_F16 = 127;
    VK_F17 = 128;
    VK_F18 = 129;
    VK_F19 = 130;
    VK_F20 = 131;
    VK_F21 = 132;
    VK_F22 = 133;
    VK_F23 = 134;
    VK_F24 = 135;
    VK_NUMLOCK = 144;
    VK_SCROLL = 145;
    { VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.
    Used only as parameters to GetAsyncKeyState() and GetKeyState().
    No other API or message will distinguish left and right keys in this way. }
    VK_LSHIFT = 160;
    VK_RSHIFT = 161;
    VK_LCONTROL = 162;
    VK_RCONTROL = 163;
    VK_LMENU = 164;
    VK_RMENU = 165;
    VK_PROCESSKEY = 229;
    VK_ATTN = 246;
    VK_CRSEL = 247;
    VK_EXSEL = 248;
    VK_EREOF = 249;
    VK_PLAY = 250;
    VK_ZOOM = 251;
    VK_NONAME = 252;
    VK_PA1 = 253;
    VK_OEM_CLEAR = 254;
      

  4.   

    河外孤星:能不能对那些怪键用中文名标名,如
    vk_XXX=nnn//逗号键
      

  5.   

    在windows单元中17950行左右有定义的
      

  6.   

    这些东西应该都在Help中可以查到的呀
      

  7.   

    这些东西应该都在Help中可以查到的呀