验证TEdit中输入的是数字
uses
ClipBrd;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Mgs: TMsg;
procedure EatKey;
{ 清除键盘缓冲区 }
begin
PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
end;
begin
{ 检查控制键按下 }
if (ssCtrl in Shift) then
case key of
{ Ctrl + v }
86:
begin
{确定剪贴板包含字符串类型 }
if Clipboard.HasFormat(CF_TEXT) then
{ 检查是否文本由数字组成}
try
StrToInt(Clipboard.AsText);
except
EatKey
end;
end;
{ Ctrl + c }
67: { do nothing}
else
EatKey;
end
else if not (Char(Key) in [#8, #13, #46, #48..#57,#96..#105]) then EatKey;
end;