Cadas decimais em DBEdit
11/04/2013
0
preciso formatar um DBEdit e não estou conseguindo. Alguém pode me ajudar?
É o seguinte: Preciso que meu DBEdit no envento OnExit fique assim: 1.650,00.
Eu uso como ligação o ADOTable.
Alguém me ajuda por favor...
Renildo Antonio
Posts
12/04/2013
Joel Rodrigues
meuEdit.Text := FormatFloat('#,##0.00',StrToFloat(meuEdit.Text));
12/04/2013
Joel Rodrigues
[url]https://www.devmedia.com.br/forum/cadas-decimais-em-dbedit-no-evento-onexit/439503[/url]
12/04/2013
Renildo Antonio
meuEdit.Text := FormatFloat('#,##0.00',StrToFloat(meuEdit.Text));
Caro colega não deu certo. Está aparecendo a seguinte mensagem:
Project TimeCard.exe raised exception class EconvertError with message “1.650,00” is not a valid floating point value. Process stopped. Use Step or Run to continue.
O que pode estar ocorrendo?
Antes eu já havia utilizado este código que vc me passou. Mas muito obrigado pela atenção.
Se puder continuar me ajudando agradeço.
12/04/2013
Joel Rodrigues
Mas, considerando que o usuário não segue regras. Uma hora digita com formatação, outra hora, sem formatação nenhuma, o que você pode fazer? Uma opção é "fingir" que está tratando a exceção de erro de formatação (EConvertError) e deixar passar caso essa exceção seja capturada.
Por exemplo:
try meuEdit.Text := FormatFloat('#,##0.00',StrToFloat(meuEdit.Text)); except on E : EConvertError do //aqui você trataria a exceção, mas apenas deixe passar end;
Isso está certo? Bem, certo mesmo não está, pois outros erros relativos a formato podem ocorrer. Por exemplo: se você digitar um valor qualquer não numérico, vai passar.
Aí você enfrenta um dilema: é preciso REALMENTE formatar esse campo nesse momento? Isso só você pode definir.
Clique aqui para fazer login e interagir na Comunidade :)