function check(test:string):boolean
var i:integer;
    r:boolean;
begin
for i:=1 to length(test) do
begin
  if isnumric(test[i-1]) then
  else
  r:=false;
check:=r;
if r=fasle then
  check:=false
else
  check:=true;
end;
end;

解决方案 »

  1.   

    可以一个一个的判断.如果>='0'且<='9',就是了.很简单的问题.小猪还是勤快
    点比较好.
      

  2.   

    function isNumber(aString: string): boolean;
    begin
      try
        StrToInt(aString);
        result := true;
      except
        result ;= false;
      end;
    end;
      

  3.   

    //from
    http://kingron.myetang.com(*//
    标题:检查数字字符串
    说明:使用于运用程序检查用户数字输入
    设计:Zswang
    日期:2002-01-24
    支持:[email protected]
    //*)///////Begin Source
    function IsNumber(mStr: string): Boolean; { 返回字符串是否是正确的数字表达 }
    var
    {}I: Real;
    {}E: Integer;
    begin
    {}Val(mStr, I, E);
    {}Result := E = 0;
    {}E := Trunc(I);
    end; { IsNumber }function IsInteger(mStr: string): Boolean; { 返回字符串是否是正确的整数表达 }
    var
    {}I: Integer;
    {}E: Integer;
    begin
    {}Val(mStr, I, E);
    {}Result := E = 0;
    {}E := Trunc(I);
    end; { IsInteger }
    ///////End Source///////Begin Demo
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    {}CheckBox1.Checked := IsNumber(Edit1.Text);
    {}CheckBox2.Checked := IsInteger(Edit1.Text);
    end;
    ///////End Demo
      

  4.   

    Delphi 6 中有一些函数请参考
    StrToIntDef();
    StrToFloatDef();
    TryStrToInt();
    TryStrToFloat();
      

  5.   

    try
         AA:=INTTOSTR(STRTOINT(AA));
        RESULT:=true;
       EXCEPT
          RESULT:=FALSE;
       END;
      

  6.   

    其实很简单, 就是比较ASC码值, 数字0--9是48到57
    你只要对字符串的扫描中加入如果当前ASC值〈48或>57退出程序表明该串有非数字字符
      

  7.   

    信誉说的是,我确实很懒。
    第二个答案好像不对,如果字符串过长的,同样不能顺利转换成INT,也可以抛出异常。
      

  8.   

    象zswang(伴水)(需要充充电) 那样,用Val函数不就可以了吗?
      

  9.   

    有个超级偷懒的办法,try一下StrToFloat函数,如果发生异常,肯定不是数字,至少不是合法的数字。
    不过对你适不适用就不知道了
      

  10.   

    <pre>function IsDigital(N: String): Boolean;
    var
      I: Integer;
    begin
      Result := True;
      for I := 1 to Length(N) do
      begin
        if not (N[I] in ['0'..'9', '.']) then 
        begin
          Result := False;
          Break;
        end;
      end;
    end;
    <pre>
      

  11.   

    TO:slzm(深情小猪) 
    第二个答案(myghost9(myghost9) 的)应该是正确的,在DELPHI中INT包括普通的INT(32位,4个字节存储)型和INT64(64位,8个字节存储)型,如果这样还不能满足你的需要的话,那么建议你使用数组存储数据,并遍历数组来比较其是否为数字。
      

  12.   

    补充一点,上一条说错了一点,转化成INT64型要将StrToInt()函数换成StrToInt64().