我用以下办法:procedure TForm11.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ((key<#48) or (key >#57)) then
        key:=#0;
end;结果输入过程中如果输入错误了,无法按backspace键后退删除一个数字
哪位大侠告诉小弟?谢谢了

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); //限制Edit只能输入数字
    begin
        if not (key in['0'..'9',#8]) then   
        key:=#0;
    end;
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    if not (key in['0'..'9',#8]) then //如果输入的字符不在0-9之间
    key:=#0;
    MessageBeep(1);// 发出蜂鸣声
    end;
      

  3.   

    限制的同时,还要保留:
    四个方向键,tab,shift+tab,delete,backspace,Insert,home,end,pagedown,pageup,enter
    它们对应的键值在哪里查得到啊?
      

  4.   

    if not key in [0..9] then
       key=0
      

  5.   

    可以参考我的扩展组件里的这个,可以控制整型和浮点型if (Ord(Key) > 27) and not Self.ReadOnly  then begin
      Case FValType of
        ftInt:
          if  not(Key in['0'..'9']) then  Key:= #0;//如果不是0~9之间的字符,则取消输入
        ftFloat:
          begin
            if not(Key in ['.', '0'..'9']) then Key:= #0;//浮点型数据可以包含小数点.
            if (Key <> #0) and (Copy(Self.Text, 1, 1) = '0') and (Key = '0') and (Pos('.', Self.Text) = 0) then Key:= #0;
            if Self.SelText = Self.Text then Self.Text:= '';
            if (Pos('.', Self.Text) > 0) and (Length(Copy(Self.Text, Pos('.', Self.Text) + 1, Length(Self.Text) - Pos('.', Self.Text))) >= FDecimalDigits) then Key:=#0;
            if StrToFloatDef(Self.Text + Key, -1) = -1 then Key:= #0;
          end;
        else
          begin
            inherited;
            exit;
          end;
      end;//end case
    end;//end if
    inherited;
      

  6.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); //限制Edit只能输入数字
    begin
         if (not (key in ['0'..'9',char(08)])) then  key:=char(0);
        key:=#0;
    end;
      

  7.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in['0'..'9',#8,#46]) then//0..9,退格,小数点
      begin
        key:=#0;
        MessageBeep(0);
      end;
    end;
      

  8.   

    if (Key in ['.', '0'..'9'])
    then  Edit1.ReadOnly:=False
    else  Edit1.ReadOnly:=True;