用了一个InputBox的对话框,然后对输入来判别,如果为空或者是不是数字(具体一点就是要大于0小于9999)怎弹出对话框,否则自己关闭。请问应该如何实现,转换为整性的异常应该如何处理?谢谢!

解决方案 »

  1.   

    var
      i:integer;
    try 
      i:=strtoint(inputbox.text);
    except
      showmessage('不是有效的数字');
    end;
      

  2.   

    我写的如下,但是不对
    procedure TfrmMainForm.FormActivate(Sender: TObject);
    var
      inputString:string;
      num:integer;
    begin
      inputString:=InputBox('认证','请输入工号:','');
      num:=StrToInt(inputString);
      if (num<0)or(num>9999) then
        raise EintError.CreateFmt('工号输入错误,请重新输入!%d',[1]);
    end;
      

  3.   

    fengzhengren(风筝) ,我试了你的了,还是不对,异常仍然没有被捕获。
      

  4.   

    num:=StrToInt(inputString);
    ->
    num:=StrToIntDef(inputString, -1);
      

  5.   

    你在delphi中用F9运行,当然不行了。
    你直接用exe执行,不可能扑捉不到的。
      

  6.   

    try..except..end绝对好用
    在DELPHI中运行时,请将Tools|Debugger Options|Language Exceptions关闭。
      

  7.   

    Stop on delphi Exceptions那的复选框的勾去掉
      

  8.   

    是不是输入不正确就一直输入啊
    var
      inputString:string;
      num:integer;
    begin
      while true do
      begin
        try  
          num := StrToInt(InputBox('认证','请输入工号:',''));
          if (num<0)or(num>9999) then
            ShowMessage('工号输入错误,请重新输入!') 
          else break; 
        except
          ShowMessage('工号输入错误,请重新输入!');
        end;
      end;end;