继续按F9,可能异常你不会。
你也可以procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
   begin 
   if not(key in['0'..'9',#8]) then 
    begin 
     key:=#0; 
        end; 
   end;

解决方案 »

  1.   

    你的程序并没有错误,把工程编译后,在资源管理器里直接运行可执行文件就没有问题了,
    限制在Edit里输入整数,可以用以下代码:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin 
      if not(key in['0'..'9',#8]) then 
      begin 
       key:=#0; 
       end; 
    end; 
      

  2.   

    这不是你的错,你写的代码应该是正确的,在delphi环境里调试是会出错的,这是正常的。
    你运行你的可执行文件就没问题了!
      

  3.   

    同意小鱼。
    异常走入except必然报错。继续运行既可。
      

  4.   

    IF KEY IN ['0'..'9'] THEN ELSE
     BEGIN SHOWMESSAGE(' 不准输入其他字符,请输入数字!');
     KEY:=#0;ABORT;
     END;
      

  5.   

    有的时候使用异常处理类型转换时并不可靠.
    把程序该为如下:
    如果不在keypress中处理.
    if (Edit2.text>='0')and(Edit2.text<='99999999') then
     myint:=StrToInt(Edit2.text)
    else begin
     Showmessage('必须输入整数');
     Edit2.SetFocus;
    end; 
      

  6.   

    不好意思,大家帮帮我谢谢
    http://www.csdn.net/Expert/topic/446/446813.shtm
      

  7.   

    procedure TForm1.Edit2Exit(Sender: TObject);
    var
      myint:integer;
      E: Integer;
    begin
      Val(TEdit(Sender).Text, myint, E);
      if E <> 0 then begin
        ShowMessage('必须输入整数');
        TEdit(Sender).SetFocus;
      end;
    end;