我的程序是这样的:
procedure TForm1.Button9Click(Sender: TObject);
var
   i : integer;
begin
   if edit1.Text = '' then showmessage('请输入数据先!');
   try
     i := strtoint(Edit1.text);
   except
     showmessage('靠,怎么又出错啊!');
   end;
end;
问提如下:(编辑出来下面的提示)
  project memoProject1.exe raised exception class EConvertError with message ""is not a valid integer value', Process stopped, Use Step or Run to continue.
   请问为什么我都把EDIT1的TEXT 转换为INT 了,还会出现"is not a valid integer value",呢? 请帮忙高手们,谢谢了!比较急!

解决方案 »

  1.   

    procedure TForm1.Button9Click(Sender: TObject);
    var
       i : integer;
    begin
       if edit1.Text = '' then 
       begin
         showmessage('请输入数据先!');
         exit;
       end;
       try
         i := strtoint(Edit1.text);
       except
         showmessage('靠,怎么又出错啊!');
       end;
    end;
     请问为什么我都把EDIT1的TEXT 转换为INT 了,还会出现"is not a valid integer value",呢? 请帮忙高手们,谢谢了!比较急!
    指的是 EDIT1.TExt = '' 无法转化为Int;调试的时候会出现,直接运行EXE就不会了;
      

  2.   

    建议在text的keypress事件中写下列代码if not (key in [0..9]) then
      key := #0;
    如果用户输入的不是数字的话,就不起作用。
      

  3.   

    function StrToIntDef(const S: string; Default: Integer): Integer;strtointdef(edit1.text,0);
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
        if not (key in [0..9]) then
          key := #0;
    end;这句话我在编辑就过不去,错误是:incompatible types 'char' and 'integer';
      

  5.   

    procedure  TForm1.Edit1KeyPress(Sender:  TObject;  var  Key:  Char);  
    begin  
           if  not  (key  in  [0..9])  then  
               key  :=  #0;  
    end;  
     
    这句话我在编辑就过不去,错误是:incompatible  types  'char'  and  'integer';