请问在delphi中有没有一个像VB中isnumeric这样的函数判断一个edit中输入的字符串是否是数字的函数啊!

解决方案 »

  1.   

    try
      IntToStr(edit1.text);
    except
      ShowMessage('不是数字');
    end;//有一个问题就是当数字非常大比如1111111111111111111111111111111111111这样的时候,还是会触发异常,你最好还是自己写一个函数来遍历字符串的每一个字符,判断它的ASCII看是否是数字,十分简单。
      

  2.   

    在delphi 中判断数值:try
      strtofloat(edit1.text);
    except
      application.messagebox('不是数值','提示');
    end;
      

  3.   

    在C中可以这样:
    isdigital();bool strToint(char line[i])
    {
      int value=0;
      for(int i=0;i<strlen(line);i++)
      {
         if(line[i]>='0'&&line[i]<'9')
           value=(value*10)+line[i]-'0';
         else return false;
      }
      return true;
    }bool hexstrToint(char line[])

     int value=0;
      for(int i=0;i<strlen(line);i++)
      {
         if(line[i]>='0'&&line[i]<='9')
           value=(value<<3)+line[i]-'0';
         else if(line[i]>='a'&&line[i]<='f')
          value=(value<<3)+line[i]-'a'+10;
          else return false;
      }
      return true;
    }
      

  4.   

    我是这样写的啊,
    但它不会弹出"不是数字"这个提示框总是弹出那个delphi的错误提示框,'debugger exception notification这个提示框,
    这是为什么啊
      

  5.   

    Edit 中只输入数字解1:  SetWindowLong(Edit1.Handle, GWL_STYLE,
                    GetWindowLong(Edit1.Handle, GWL_STYLE) or
                    ES_NUMBER);解2:
      procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
      begin
       if not(Key in ['0'..'9']) then
        Key := #0;  //这里也可以写abort;  end;解3如楼上所贴,用strtofloat函数
      

  6.   

    to 楼主
    在调试期,try..except..end;能捕获异常,但是还是会跳出异常提示框来告诉你,在执行exe文件的时候就不会了,你试试不要在delphi里f9,直接生成exe,然后点击exe文件执行.
      

  7.   

    microjuz(天才弟弟) 
    谢谢你能不能和你交个朋友啊,我刚学DELPHI,有很多不懂的,希望你能多指教,我的QQ是4990325
      

  8.   

    microjuz(天才弟弟) 对不起我不是故意的,我第一次给分,不知道可以给两个人的分,
    下次好吗?