if not (key in['0'..'9']) then

解决方案 »

  1.   

    小妹,你的虫真多,怎么用这么笨的方法:使用MaskEdit控件,岂不是更好?他自动帮你过滤
      

  2.   

    这么快就解决了,是加上了key=chr(0)这一行吗?^_^
      

  3.   

    key:=char(0);
    key:=#13;
    字符为空
      

  4.   

    delphi中用isnumeric() 这个函数吗?我在help中没有查到!
      

  5.   

    delphi中好像没有这个函数,可以自己写:
    function IsDigitStr(S: string): Boolean;  //是否数字字串
    var I: Integer;
    begin
      Result := False;
      if S = '' then Exit;
      for I := 1 to Length(S) do
        if not (S[I] in ['0'..'9']) then Exit;
      Result := True;
    end;
      

  6.   

    看我的超级代码,连粘贴的数据都不放过:var
      T: Extended;
      P: Integer;
    begin
      if edtCode.Text ='' then Exit;
      P :=edtCode.SelStart;
      try
        T:=StrToFloat(edtCode.Text);  //转换成数字,
        T:=T * 100;                  //要限制几位小数就乘10的几次方
        if T<> Int(T) then
          edtCode.Undo;
        if P < Length(edtCode.Text) then
        begin
          edtCode.SelStart := P
        end
        else
          edtCode.SelStart := Length(edtCode.Text);
      except
        edtCode.Undo;                //文本框中有非数字符号
      end;
      edtCode.ClearUndo;
    end;
      

  7.   

    procedure Trenshi_add_form.Edit_work_yearKeyPress(Sender: TObject;
      var Key: Char);
    begin
        if not (key in['0'..'9']) then
        {--------------------------------------------------}
        begin
            showmessage('请输入数字');
        end;
    应该这样写
    end;