if Key>=’0‘ and Key<='9' then
   ......

解决方案 »

  1.   

    如果在用户按下的同时就判断的话,可以在ONKEYPRESS事件中写,ONKEYPRESS事件有参数KEY判断KEY的值是否在#48-#57之间即数字0-9。如果想对用户已经输入的字符串判断。可以:
    try
       a:=strtofloat(edit1.text);
    except
        '错误提示'
    end;
      

  2.   

    当焦点离开输入框时判断:  Val() 函数;
    也可用楼上的方法;
      

  3.   

    这个问题已经问烂了
    No.1
      try ... except end;No.2
    function IsInteger(const mStr: string): Boolean;
    var
      E: Integer;
      vNumber: Integer;
    begin
      Val(mStr, vNumber, E);
      Result := E <> 0;
    end;function IsNumber(const mStr: string): Boolean;
    var
      E: Integer;
      vNumber: Real;
    begin
      Val(mStr, vNumber, E);
      Result := E <> 0;
    end;
      

  4.   

    procedure ....keydown...
    begin
      if not (key in ['0'..'9']) then 
         showmessage('is not number');
         
      

  5.   

    这样绝对可以!
    function TfrmInput.IsNumber(txt:string):boolean;
    var
    ftData:single;
    begin
    result:=False;
    try
    StrToFloat(txt);
    result:=True;
    except
    on  EConvertError do ShowMessage('Wrong Input');
    end;
    end;procedure TfrmInput.BitBtn1Click(Sender: TObject);
    var
    re:boolean;
    begin
    re:=IsNumber(Edit1.Text);
    if re then
            showmessage('This text is a number')
            else
            showmessage('This text isn''t a number');
    end; 
      

  6.   

    如果用下面的方法,退个键不好使。所以最好在执行下面的代码之前,判断一下如不是退个键再执行下面的代码。
    if Key>=’0‘ and Key<='9' then
      
      

  7.   

    Delphi6.SysUntil.TryStrToInt
    Delphi6.SysUntil.TryStrToFloat