Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renanbg

[Resolvido] Formatar campo moeda durante digitação

Recommended Posts

Alguem sabe como ja ir formatando um campo num dbedit enquanto se vai digitando?

 

Por exemplo se desejo digitar um valor de 365,98 eu gostaria que o campo ja se formatasse sem eu precisar digitar a virgula.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você terá que controlar isso no evento onkeypress, algo do tipo abaixo (não testado):

 

procedure TForm1.Edit1KeyPress(Sender: TObject;
 var Key: Char);
var aux: String;
   valor: Double;
begin
  if Key in ['0'..'9'] then
  begin
     valor := StrToFloat(Edit1.text) * 100; /*Retirar as casas decimais*/
     aux   := FloatToStr(valor) + Key;
     Edit1.text := FormatFloat('########0.00',(StrToFloat(aux) / 100)); /* Formatar o campo com 2 casas decimais */
  end
end;

Seria algo +/- assim... estou sem delphi atualmente para testar e montar o código correto.

 

[ ]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa...

 

da erro digitando qualquer numero, só aceita se eu digitar strings.

 

Eu acho que no OnKeyPress vai dar erro mesmo..

mas você pode instalar o pacote de componentes JVCL

se nao estou enganado em um componente de texto do tipo 'currency', você liga a formatação automatica e ele vai formatando conforme a digitação...

 

ou senao use no OnExit:

 

FormatFloat('##,##0.00', valor);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.