急:请问高手怎么判断Edit1.text中的字符是“数字”?
如:'12','2','123'等

解决方案 »

  1.   

    if strtofloatdef(edit1.text, 0) = strtofloatdef(edit1.text, 1) then
      showmessage('数字')
    else
      showmessage('不是数字');
      

  2.   

    使用:
    function IsNumber(s:string):boolean;
    var tmp:integer;
    begin 
     try
       tmp:=StrToInt(s);
     except
       Result:=False;
       exit;
     end;
     REsult:=true;
    end;
      

  3.   

    告诉楼主一个 奇特 的方法::  -----------------用异常处理try
      i:=strToint(Edit3.Text );
      showmessage('yes');
    except
      showmessage('no');
    end;够绝吧~~!~~
      

  4.   

    var
      i: integer;
      s: String;
      IsStr: Boolean
    begin
      IsStr := False;
      for i:=1 to length(Edit1.text) do
      begin
        if not (S[i] in [80..89]) then
          IsStr:= True;  
      end;
      if not IsStr then
        showmessage('是数字')
    end;
      

  5.   

    var
    I,code:integer;begin
       Val(Edit1.text,I,code);
       if code<>0 then
       ShowMessage('第'+IntToStr(Code)+'开始不是数字')
       else
       ShowMessage('是数字');  
    end;
      

  6.   

    var
      i: integer;
      s: String;
      IsStr: Boolean
    begin
      IsStr := False;
      for i:=1 to length(Edit1.text) do
      begin
        if not (ord(S[i]) in [80..89]) then
          IsStr:= True;  
      end;
      if not IsStr then
        showmessage('是数字')
    end;
      

  7.   

    var s:float;
    try
     strtofloat(edit1.text)
    except
     showmessage('搞错拉');
    end;
      

  8.   

    我觉得异常处理很不好,因为老是提示出错,我是在他的KEYPRESS 事件中
      if ( not key in ['0'..'9',#42,#23] ) then
         key:=#0;
    这样如果他输入的非法字符将视为无效输入
      

  9.   

    Wally_wu(韦利)的方法不全面,因为楼主所说是"数字",这个概念很广,还是用 sysu(死树)兄的思路吧。可以参考Delphi Help中关于StrToFloatDef与StrToIntDef等函数的说明。楼主如果有兴趣也可以自己写一些常用的小函数,加入到自己的代码库中,这也是一种资源。
      

  10.   

    我的做法xugang96(漂泊在外,居无定所)差不多
    但我的语句是这样写的:procedure TfrmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9']) then
         key:=#0;
    end;
      

  11.   

    duxbin()的少了backspace和del,总不能让人不能回退吧
    procedure TfrmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (key in ['0'..'9',#8,#83]) then
         key:=#0;
    end;