用InputBox获得一个字符串sMenuNo:=InputBox('选择菜单号码','请输入选择菜单号码','');如果sMenuNo中不是个整数的话,程序下面的操作就会出现异常,请问我怎么才能判断出字符串sMenuNo中是否只有数字

解决方案 »

  1.   

    //假如你有十个菜单
    if (sMenuNo > 0) and (sMenuNo <= 10) then
      //处理你定义的过程
    else  
      messagebox('无效的菜单编号');
      

  2.   

    function isnum(str:string):boolean;
    begin
      try
        strtoint(str);
        result:=true;
      except
        result:=false;
      end;
    end;
      

  3.   

    //刚才那个不对.这个对!
    procedure TForm1.Button1Click(Sender: TObject);
    var
      sMenuNo: string;
    begin
      sMenuNo := edit1.Text;
      if (sMenuNo > '0' ) and (sMenuNo <= '10') then
        self.Caption := 'aaa'
      else
        Application.MessageBox ('无效的菜单编号', '错误', MB_OK);
    end;
      

  4.   

    楼上的怎么回了两次问题都回串了。
    对于用strtoint(str)方法来捕捉一异常,我不太赞同,如果这个字符串过长的话,
    这个方法就不行了。
    最好是挨个检查
    function isnum(str:string):boolean;
    var
      i:integer;
    begin
      for i:=1 to length(str) do
        if not (str[i] in ['0'..'9']) then
        begin
          result:=false;
          exit;
        end;
      result:=true;
    end;