DBEdit com definição de casas decimais

Delphi

16/10/2003

Como formatar um DBEdit ligado a um campo tipo float para que tenha um tipo de máscara só permitindo que o usuário digite apenas 2 casas decimais (separador decimal) ??
[b:6b1882860d]Não[/b:6b1882860d] estou falando da máscara do displayformat ou a propriedade currency do tfield que só servem para a formatação (exibição), permitindo digitar mais de 2 casas decimais o que fará com que seja gravado no BD da forma como o usuário digitou (Ex.´18,034´) mas exibirá no dbedit com duas casas(Ex.´18,04´).
Também não gostaria de usar um maskedit e fazer as ligações e consistências com o BD na mão.

Obrigado.


Danielz

Danielz

Curtidas 0

Respostas

Luineumann

Luineumann

16/10/2003

faça

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in [´0´..´9´,´.´,´,´,#8,13])
then key := 0;
if key in [´,´,´.´]
then key := DecimalSeparator;
if key = DecimalSeparator
then
if pos(key,TEdit(Sender).Text) <> 0
then key := 0;
if (key in [´0´..´9´])
then if pos(DecimalSeparator,TEdit(Sender).Text) <> 0 // jía digitou a vírgula
then if length(TEdit(Sender).Text) > pos (DecimalSeparator,TEdit(Sender).Text) + 1
then key := 0;

end;


GOSTEI 0
POSTAR