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

解决方案 »

  1.   

    在这基础上改进,可以输入‘.’,检查‘.’是否重复输入,重复输入KEY:=#0;
    还要检查当前的EDIT.TEXT是否空,是空,在‘.’前加‘0’;
      

  2.   

    哦,看到了,试过了,谢谢 dreamfan(dreamfan) ,kplchx(lcx) 大虾
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['.','0'..'9'] )and(key<>#13) then
    begin
    Application.MessageBox('请输入数字','提示',mb_ok);
    key:=#0;
    end
    else
    if key=#13 then edit1.SetFocus;end;
      

  4.   

    用MaskEdit好一点,自己处理象'3.4.56.'样的输入较麻烦
      

  5.   

    用MaskEdit好一点,自己处理象'3.-4.+++56.'样的输入较麻烦