常數名稱 十六進制值 十進制值 對應按鍵
VK_LBUTTON 01 1 鼠標的左鍵
VK_RBUTTON 02 2 鼠標的右鍵
VK-CANCEL 03 3 Ctrl+Break(通常不需要處理)
VK_MBUTTON 04 4 鼠標的中鍵(三按鍵鼠標)
VK_BACK 08 8 Backspace鍵
VK_TAB 09 9 Tab鍵
VK_CLEAR 0C 12 Clear鍵(Num Lock關閉時的數字鍵盤5)
VK_RETURN 0D 13 Enter鍵
VK_SHIFT 10 16 Shift鍵
VK_CONTROL 11 17 Ctrl鍵
VK_MENU 12 18 Alt鍵
VK_PAUSE 13 19 Pause鍵
VK_CAPITAL 14 20 Caps Lock鍵
VK_ESCAPE 1B 27 Ese鍵
VK_SPACE 20 32 Spacebar鍵
VK_PRIOR 21 33 Page Up鍵
VK_NEXT 22 34 Page Domw鍵
VK_END 23 35 End鍵
VK_HOME 24 36 Home鍵
VK_LEFT 25 37 LEFT ARROW 鍵(←)
VK_UP 26 38 UP ARROW鍵(↑)
VK_RIGHT 27 39 RIGHT ARROW鍵(→)
VK_DOWN 28 40 DOWN ARROW鍵(↓)
VK_Select 29 41 Select鍵
VK_PRINT 2A 42
VK_EXECUTE 2B 43 EXECUTE鍵
VK_SNAPSHOT 2C 44 Print Screen鍵(抓屏)
VK_Insert 2D 45 Ins鍵(Num Lock關閉時的數字鍵盤0)
VK_Delete 2E 46 Del鍵(Num Lock關閉時的數字鍵盤.)
VK_HELP 2F 47 Help鍵
VK_0 30 48 0鍵
VK_1 31 49 1鍵
VK_2 32 50 2鍵
VK_3 33 51 3鍵
VK_4 34 52 4鍵
VK_5 35 53 5鍵
VK_6 36 54 6鍵
VK_7 37 55 7鍵
VK_8 38 56 8鍵
VK_9 39 57 9鍵
VK_A 41 65 A鍵
VK_B 42 66 B鍵
VK_C 43 67 C鍵
VK_D 44 68 D鍵
VK_E 45 69 E鍵
VK_F 46 70 F鍵
VK_G 47 71 G鍵
VK_H 48 72 H鍵
VK_I 49 73 I鍵
VK_J 4A 74 J鍵
VK_K 4B 75 K鍵
VK_L 4C 76 L鍵
VK_M 4D 77 M鍵
VK_N 4E 78 N鍵
VK_O 4F 79 O鍵
VK_P 50 80 P鍵
VK_Q 51 81 Q鍵
VK_R 52 82 R鍵
VK_S 53 83 S鍵
VK_T 54 84 T鍵
VK_U 55 85 U鍵
VK_V 56 86 V鍵
VK_W 57 87 W鍵
VK_X 58 88 X鍵
VK_Y 59 89 Y鍵
VK_Z 5A 90 Z鍵
VK_NUMPAD0 60 96 數字鍵0鍵
VK_NUMPAD1 61 97 數字鍵1鍵
VK_NUMPAD2 62 98 數字鍵2鍵
VK_NUMPAD3 62 99 數字鍵3鍵
VK_NUMPAD4 64 100 數字鍵4鍵
VK_NUMPAD5 65 101 數字鍵5鍵
VK_NUMPAD6 66 102 數字鍵6鍵
VK_NUMPAD7 67 103 數字鍵7鍵
VK_NUMPAD8 68 104 數字鍵8鍵
VK_NUMPAD9 69 105 數字鍵9鍵
VK_MULTIPLY 6A 106 數字鍵盤上的*鍵
VK_ADD 6B 107 數字鍵盤上的+鍵
VK_SEPARATOR 6C 108 Separator鍵
VK_SUBTRACT 6D 109 數字鍵盤上的-鍵
VK_DECIMAL 6E 110 數字鍵盤上的.鍵
VK_DIVIDE 6F 111 數字鍵盤上的/鍵
VK_F1 70 112 F1鍵
VK_F2 71 113 F2鍵
VK_F3 72 114 F3鍵
VK_F4 73 115 F4鍵
VK_F5 74 116 F5鍵
VK_F6 75 117 F6鍵
VK_F7 76 118 F7鍵
VK_F8 77 119 F8鍵
VK_F9 78 120 F9鍵
VK_F10 79 121 F10鍵
VK_F11 7A 122 F11鍵
VK_F12 7B 123 F12鍵
VK_NUMLOCK 90 144 Num Lock 鍵
VK_SCROLL 91 145 Scroll Lock鍵
上面沒有提到的:(都在大鍵盤)
VK_LWIN 91 左win鍵
VK_RWIN 92 右win鍵
VK_APPS 93 右Ctrl左邊鍵,點擊相當於點擊鼠標右鍵,會彈出快捷菜單
186 ;(分號)
187 =鍵
188 ,鍵(逗號)
189 -鍵(減號)
190 .鍵(句號)
191 /鍵
192 `鍵(Esc下面)
219 [鍵
220 /鍵
221 ]鍵
222 '鍵(引號)
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_DELETE then
key:=0;
end;
Delphi6.0,2000下通過Top
於在keydown中屏蔽掉除數字外的所有鍵
還應該允許Ctr+C/X/V,所以總結起來應該是:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #3, #22, #24, #8, #13, #45]) then Key := #0;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key>#57) and (key<#48) then
key:=#0;
end;
我想你最好將你的例程寫出來。
如果是像CKEN閣下說的那樣,你要將按鍵事件屏蔽的話,實際上應該是直接賦值:
Key:=0;
(注意不是Key:=#0,因為這里的Key是Word類型,在keypress事件中,key的值是Char型,就要用“#”)
Good luck
在KeyDown里面就可以實現
if key=vk_numpad0 then (如果為小鍵盤的0鍵就干你想干的事情)
下面是小鍵盤的值
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)