procedure Taddpermit.edt_nameChange(Sender: TObject);
var
  S : String ;
begin 
  s ;= text ;   
 if length(s) > 3 then ;
        if s[length(s)-3] = '.' then
        begin
          delete(s,length(s),1);
          text := s ;
          SelStart := length(s) ;
        end ;
end;

解决方案 »

  1.   

    把每次输入的数字转换成str类型,然后判断小数点的位置,如果小数点后多于两位的,强行切掉。在keypress事件中处理。tmp := edit1.text;
    if pos('.',edit1.text) > 0 then
    begin
      if length(edit1.text) - pos > 2 then
      begin
        tmp := copy(1,pos +2 ,edit1.text);
        edit1.text := tmp;
      end;  
    end;
      

  2.   

    能否在TFloatField中设限制,使它所对应的DBText限制用户的输入?
      

  3.   

    var
      strEdit: string;
      intPos :integer;
    begin
      intPos := 0;
      strEdit := edit1.text;
      intPos := pos('.',strEdit);
      delete(strEdit,1,intPos);
      if (length(strEdit) > 2) then
        showmessage('请输入的小数点后的位数不能超过2 位!')
      
    end;