只能输入数字:
procedure Form1.Edit1KeyPress(Sender:TObject;var key:char);
begin
  if not ((Key>='0') and key (<= '9')) then
    if not (Key = #8) then
      Key := #0;
end;

解决方案 »

  1.   

    var
       i:integer;
       s:string;
    try
       i := StrToInt(s);
    except
       //提示不是数字.
    end;
      

  2.   

    var
      i:integer;
      s:string;
    try
      i := StrToInt(s);
    except
       on EConvertError do
       begin
      //提示不是数字.
       end;
    end; 
      

  3.   

    lovewangj(lllll) 的方法最好了,我常用的
      

  4.   

    To Focus(老鱼):
    你说错了,我查了一下,才98遍而已,呵呵。 
      

  5.   

     if not (key in ['0'..'9', '.', '-', Chr(VK_RETURN), chr(vk_back)]) then
        begin
          key := #0;
          application.messagebox('请输入整数或小数', '提示', mb_ok + mb_iconstop);
        end;
      

  6.   

    if not (key in['0'..'9','.',#8]) then
      begin
        showmessage('输入不是数字');
     end;