你在keydown事件加入以下代码: if not(key in [48..57]) then key := 0; 或者在keypress事件加入以下代码: if not (key in ['0'..'9']) then key := #0;
在edit的keypress事件中 加入if not (key in ['0'..'9',#8],'.') then key:=#0;
写错了是 if not (key in ['0'..'9',#8,'.']) then #8是Del键; '.'小数点,只输整数可以不要。
把form 的keypreview属性设为true procedure form1.DBEdit27KeyPress(Sender: TObject; var Key: Char); beginif Not (Key in ['0'..'9',#8,#13,#46] ) then Key := #0; end;
在edit的keypress事件中if not (key in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', #8,'.') then key:=#0;
if not(key in [48..57]) then
key := 0;
或者在keypress事件加入以下代码:
if not (key in ['0'..'9']) then
key := #0;
在edit的keypress事件中
加入if not (key in ['0'..'9',#8],'.') then
key:=#0;
if not (key in ['0'..'9',#8,'.']) then
#8是Del键;
'.'小数点,只输整数可以不要。
procedure form1.DBEdit27KeyPress(Sender: TObject; var Key: Char);
beginif Not (Key in ['0'..'9',#8,#13,#46] ) then
Key := #0;
end;
#8,'.') then
key:=#0;
1->VK_1
.........
.........
........
9->VK_9对于小键盘上的
0->VK_NUMPAD0
1->VK_NUMPAD1
...............
..............
9->VK_NUMPAD9
Exit
else if (Ord(Key)<48) or ((Ord(Key)>57)) then
Key:=#0;
调试通过,可以复用。
在edit的keypress事件中
if not (key in ['0'..'9',#8]) then
key:=#0;
------------------------------------------------
Delphi 键盘码表
资料来源:Delphi Windows 单元文件 表格整理:http://www.netgocn.com
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;