有没有函数判断输入的是数字!!

解决方案 »

  1.   

    function IsNumber(mStr: string): Boolean; { 返回字符串是否是正确的数字表达 }
    var
      I: Real;
      E: Integer;
    begin
      Val(mStr, I, E);
      Result := E = 0;
      E := Trunc(I);
    end; { IsNumber }
      

  2.   

    你也可以自己写一个函数用来判断输入是不是数字呀,
    如果不想写用val是可以判断的哦,
      

  3.   

    try
      i := StrToInt(s);
    except
      //如果出现异常s就不是数字
    end;看看StrToInt的帮助就知道了
      

  4.   

    可以用key来判断
    if key in[0..9] then
    begin
    .......
    end;
      

  5.   

    function IsNumbe(c:Char):boolean;
    begin
      Result:=c in ['0'..'9'];
    end;
    //在Edit1 OnkeyPress 中调用
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not IsNumber(Key) then
      Key:=#0;
    end;
      

  6.   

    你可以写在KeyPress事件里面。
    begin
    if (key in ['0'..'9']=false) and (word(key)<>vk_back) and (word(key)<>VK_RETURN) then
         begin
            key:=#0;
           Application.MessageBox('你输入的信息不是数字,请重新输入!', '注意',MB_OK+MB_ICONError)
          end;
    end;
    //Vk_vack代表BACKspace键。VK_RETURN代表回车。
      

  7.   

    楼上几位有问题:  当然不能用KeyPress事件,如用户用了Paste后就不能判断了。
      

  8.   

    in   IdGlobal.pas function IsNumeric(c: char): Boolean;
      

  9.   

    这样就可以
    function IsNumber(Num:String):Boolean;
    begin
      Result:=true;
      try
        StrToFloat(Num);
      except
        Result:=False;
      end;
    end;
      

  10.   

    试下这样,同样可以实现 honey_001(雪糕) 的效果:if  (key>#57) or (key<#48)  then
    showmessage('你输入了有效数字!')
    else
    begin
    key:=#0;
    showmessage('你输入的不是有效数字!');
    end;