请问一个,我要测一下Edit1.Text里面输入的全是数子,应该怎样做,是不是用集合呀?请写下代码,谢谢!

解决方案 »

  1.   

    用一个函数即可搞定(利用的是Delphi的异常处理)
    function IsNumber(Const aStr:String):boolean;implementationfunction IsNumber(Const aStr:String):boolean;
    begin
      try
        StrToFloat(aStr);
        Result:=true;
      except
        Result:=False;
      end;
    end;
    判断时只需用
    if isNumber(Edit1.Text) then
      ShowMessage('是数字')
    else
      ShowMessage('不是数字');注意:在调试时可能会出错(和你的Delphi设置有关),但在编译后独立运行是正常的。
      

  2.   

    这的确用集合简单,
    应该在Edit1.OnKeyPress(好像是这个事件,我不记得了)这样写:begin
    If not key in ['0..9',#8,#13] then begin key:=#0;edit1.setfocus;
    end;
      

  3.   

    可以使用val()函数来实现!
    有代码如下:
    function IsNum(TempStr : String) : bool ;//TempStr 可以接受你的edit1.text
    var                                      //返回TRUE 表明是数字  
      Temp : Double;
      Mark : integer;
    begin
      val(TempStr,Temp,Mark);
      result := Mark = 0;
    end;
      

  4.   

    楼上正解~如果考虑集合那就是你思维方式有问题,Delphi中集合内最多只能有256个成员,所以是无法包括全部Integer的当然你可以自己写了一个Function或者Procedure来对每次的按键进行操作,这样一个集合就只需要0..9就可以了判断了