Array
(
)

Limitar digitação em campo Numeric

Nataliabragantim
   - 19 mai 2017

Boa tarde,
Tenho um DBEdit que está ligado a um campo do tipo Numeric (18,3). Minha dúvida é sobre como limitar a digitação no DBEdit, para não permitir digitar mais do que o tamanho do campo.
Se digitar mais do que 18 números, dá o erro "Is not a valid floating point value for field...".
O campo está com o DisplayFormat = ###,###.000, pois eu preciso que venha as três casas decimais preenchidas, mesmo que o usuário não preencha.
Então, se eu digito no campo um número sem casas decimais, automaticamente ele insere as 3 casas decimais como zero.
Tentei utilizar o Maxlenght = 18, mas se eu digito os 18 números, sem vírgula, ele vai tentar inserir os 3 zeros, e aí dá o mesmo erro. E se eu coloco menos números, e as 3 casas decimais (que juntos completes os 18 números), sair do campo e voltar, apagar a vírgula, e sair do campo de novo, dá o erro.
Existe alguma forma de limitar a digitação, ou não permitir de alguma forma que sempre fique com 3 casas decimais, mesmo que o usuário apague a virgula?