验证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;