validando campo para não dar erro.

Delphi

14/07/2005

Bom Dia...
Não consegui descobrir ainda uma maneira para não acontecer um erro no exit do campo.


Exemplo:
No On exit do campo eu edito o valor digitado desta forma..
edtValor.Text:= FormatFloat(´R$ #,0.00´, (StrToFloat(edtValor.Text)));

E na hora de inserir eu tiro o ponto.
Funciona uma beleza!




Mas no exit do edtValor.text se o usuário digitar o valor, e voltar para o campo da pau.
Diz que nao é um valor Float etc...


Outra coisa se o usuário digitar 10,,0,0,0 da erro.
Ou seja depende do usuário colocar certo o valor!
Isso eu não queria.
Preciso de uma maneira para editar o valor da maneira correta mesmo o usuário querendo errar o valor...
Ou seja, para não acontecer o erro, de maneira alguma!

obrigado.


Lynx

Lynx

Curtidas 0

Respostas

Arc

Arc

14/07/2005

Tenta isso

edtValor.text := formatfloat(´#,0.00´,StrToFloat(StringReplace(edtValor.text, ´.´, ´´, [rfReplaceAll])));

Espero ter ajudado


GOSTEI 0
Lynx

Lynx

14/07/2005

realmente funcionou!!
Muito Obrigado.


Mas só uma dúvida, eu sei que ninguém vai cadastrar um valor 0,75.

Mas tem como usar isso e conseguir cadastrar este valor...

porque nao vai poder digitar a virgula e se colocar, 075 vai para 75 reais.


GOSTEI 0
Lynx

Lynx

14/07/2005

é porque no evento onkeypress eu coloco isso.
if key in [´0´..´9´,#8] then
key := key
else
key := 0;


para o cara somente numeros.

Se eu deixo digitar virgula, com a dica que você escreveu vai dar erro se ele digitar (2 virgulas juntas) ,, etc...


GOSTEI 0
Arc

Arc

14/07/2005

if key in [´0´..´9´,#8] then key := key else key := 0;



if key in [´0´..´9´,8,´,´]then
key := key
else
key := 0;


Digita os valores sem ponto
Digite a ´,´ somente se tiver decimal


GOSTEI 0
Lynx

Lynx

14/07/2005

já funcionou valeu..

tratei o erro com try tb...

obrigado


GOSTEI 0
POSTAR