Renanbg 1 Denunciar post Postado Abril 27, 2011 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
Chrnos 30 Denunciar post Postado Maio 5, 2011 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
Renanbg 1 Denunciar post Postado Maio 12, 2011 opa... da erro digitando qualquer numero, só aceita se eu digitar strings. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago Delalibera 1 Denunciar post Postado Maio 28, 2011 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
Renanbg 1 Denunciar post Postado Fevereiro 3, 2012 Obrigado pelas dicas pessoal. Compartilhar este post Link para o post Compartilhar em outros sites