如何控制在Edit控件中只能输入数字
且小数点后最多精确到两位,多于两位则无法输入。

解决方案 »

  1.   

    用MaskEdit
    并且设置它的EditMask为9999.99;1;_
      

  2.   

    用pos判断小数点的位置,然后限制小数点后的长度就行了。
      

  3.   

    输入只能数字的话,在keypress判断
      

  4.   

    MaskEdit呀,
      要么就在onChange中判断
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      //限制输入字符
      if not (key in ['1'..'9','.',#8]) then
      begin
         key := #0 ;
         exit ;
      end ;
      //限制'.'个数
      if (key = '.') and (pos('.',TEdit(Sender).Text) > 0 ) then
      begin
       Key := #0 ;
       exit ;
      end ;
      //限制个数
      if (pos('.',TEdit(Sender).Text) > 0 ) then
      begin
         if (TEdit(Sender).SelStart >= pos('.',TEdit(Sender).Text)) and
               ( Length(Copy(Tedit(Sender).Text,pos('.',TEdit(Sender).Text)+1, Length(TEdit(Sender).Text )-
                pos('.',TEdit(Sender).Text)))>1 )  and (key <>#8)then
         begin
            Key := #0 ;
            exit ;
         end ;
      end ;
    end;
      

  6.   

    叩谢Manwill71(天皇地虎江山一片)