Armazenar número de edit num campo Float
Boa noite caros colegas,
Coloquei no OnExit de um Edit, o seguinte código:
Try
EdtLimite.Text := FormatCurr('#,0.00',(StrToFloat(EdtLimite.Text)));
Except
ShowMessage(FMenu_.Operador.Caption+', algum caractere inválido foi digitado. Favor verificar.');
EdtLimite.SetFocus;
end;
O Objetivo é que ao digitar um número qualquer, automaticamente ele seja convertido para um formato monetário e, se for digitado alguma caractere do tipo texto, uma mensagem será fornecida ao usuário.
Porém na hora de armazenar o conteúdo do Edit na tabela, aparece a seguinte mensagem de erro:
'1.175,00' is not a valid floating point value
O comando que estou usando para armazenar o valor é o seguinte:
dm_.ZQryClientes.Append;
{ ... }
dm_.ZQryClienteslimite.Value := StrToCurr(EdtLimite.Text);
{ ... }
dm_.ZQryClientes.Post;
Será que alguém pode me passar um dica de como fazer para se evitar este erro e conseguir armazenar com êxito o conteúdo do Edit que está no formulário?
Desde já agradeço a todos.
Coloquei no OnExit de um Edit, o seguinte código:
Try
EdtLimite.Text := FormatCurr('#,0.00',(StrToFloat(EdtLimite.Text)));
Except
ShowMessage(FMenu_.Operador.Caption+', algum caractere inválido foi digitado. Favor verificar.');
EdtLimite.SetFocus;
end;
O Objetivo é que ao digitar um número qualquer, automaticamente ele seja convertido para um formato monetário e, se for digitado alguma caractere do tipo texto, uma mensagem será fornecida ao usuário.
Porém na hora de armazenar o conteúdo do Edit na tabela, aparece a seguinte mensagem de erro:
'1.175,00' is not a valid floating point value
O comando que estou usando para armazenar o valor é o seguinte:
dm_.ZQryClientes.Append;
{ ... }
dm_.ZQryClienteslimite.Value := StrToCurr(EdtLimite.Text);
{ ... }
dm_.ZQryClientes.Post;
Será que alguém pode me passar um dica de como fazer para se evitar este erro e conseguir armazenar com êxito o conteúdo do Edit que está no formulário?
Desde já agradeço a todos.
Aloisio Santos
Curtidas 0
Respostas
Wanderson Cortes
06/11/2014
Cara tenta assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/359444-20141107-100151.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/359444-20141107-100151.png[/img]
GOSTEI 0
Douglas
06/11/2014
Olá Pro-Luck, complementando a resposta do nosso amigo Wanderson. O erro seu erro só está sendo gerado, devido a vírgula no valor: "1.175,00". Ao ser executado o procedimento passado pelo Wanderson, a função StringReplace irá trocar tudo que estiver com vírgula para ponto.
Espero ter contribuído para o seu conhecimento. Um abraço!
Espero ter contribuído para o seu conhecimento. Um abraço!
GOSTEI 0
Aloisio Santos
06/11/2014
Deu certo sim, mas não foi preciso tirar a vírgula. Se ela for trocada por ponto, gera o mesmo erro.
Acabou ficando assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/233649-20141108-130145.jpg[/img]
Desde já, muito obrigado a todos.
Tópico encerrado. ;)
Acabou ficando assim:
[img]http://arquivo.devmedia.com.br/forum/imagem/233649-20141108-130145.jpg[/img]
Desde já, muito obrigado a todos.
Tópico encerrado. ;)
GOSTEI 0