在onkeypress中写if not key in ('1'..'9','.') then
begin
  key:=#0;
  beep;
end;

解决方案 »

  1.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (key < '0') or (key > '9') then
         begin
             showmessage('输入错误');     end;
    end;
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
        if (key<'0') or (key>'9') then key:=#0;
    end;
      

  3.   

    在Edit的KeyPress事件中输入以下代码:      
    if Not(Key in ['0'..'9','.',#8]) then
    begin
        Key:=#0;
        Beep;
    end;
      

  4.   

    在onchange或者onexit中写,别的事件对copy、paste进来的没用。
    简单些就这样
    begin
      try
        strtoint(edit1.text);
      except
        showmessage('no');
        edit1.setfocuse;
      end;
    end;
      

  5.   

    不好意思,刚写错了。
    if not (key in ['1'..'9','.']) then
    begin
      key:=#0;
      beep;
    end;
      

  6.   

    if not (key in ['0'..'9',#13,#8]) then
      begin
        key:=#0
        beep;
      end;