procedure TfmBSOutWh.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key=Chr(VK_DOWN) then ShowMessage('Pass'); end;我按了DownArrow,但没显示'Pass'。
查查帮助:Virtual Key CodeVirtual Key Code Corresponding keyVK_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 key
方向键在KeyPress Event里是看不到的,也就是说方向键不会触发KeyPress Event,要响应 方向键,写在KeyDown 或者 KeyUp里面procedure TForm1.FormKeyDown(sender: TObject; Shift: TShiftState; var Key: WORD) begin if Key = VK_UP then // do something when press UP key; if Key = VK_DOWN then // do something when press DOWN key; if Key = VK_LEFT then // do something when press LEFT key; if Key = VK_RIGHT then // do something when press RIGHT key; //或者 If Key in [vk_up, VK_DOWN, VK_LEFT, VK_DOWN] then ExecSelfCode. end;
begin
if Key=Chr(VK_DOWN) then ShowMessage('Pass');
end;我按了DownArrow,但没显示'Pass'。
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 key
方向键,写在KeyDown 或者 KeyUp里面procedure TForm1.FormKeyDown(sender: TObject; Shift: TShiftState; var Key: WORD)
begin
if Key = VK_UP then
// do something when press UP key;
if Key = VK_DOWN then
// do something when press DOWN key;
if Key = VK_LEFT then
// do something when press LEFT key;
if Key = VK_RIGHT then
// do something when press RIGHT key; //或者
If Key in [vk_up, VK_DOWN, VK_LEFT, VK_DOWN] then
ExecSelfCode.
end;