捡点分
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9', '-']) then Key := #0;
end;最后提交的时候再验证一下,因为还有可能用户使用粘贴。

解决方案 »

  1.   

    if not (Key in ['0'..'9', '-', #8]) then Key := #0;再排除退格键。
      

  2.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
    begin 
       label1.Caption := intTostr(ord(key)); 
        case Key of 
            '0'..'9' : exit; 
            '.' : if pos('.',Edit1.Text )> 0 then 
                    Key:=#0; 
            '-','+' : 
                  if not ((pos('+',(Sender as TEdit).Text)=0) and 
                     (pos('-',(Sender as TEdit).Text)=0) and 
                     (( Sender as Tedit).selstart = 0)) then 
                    Key:=#0; 
            #8   :   //Backspace Key 
        else ; 
                    Key:=#0; 
        end; 
    end; 把这个简单改一下就可以了。