Problema com o OnExit do edit
Tenho um edit que recebeu uma função para completar com zeros à esquerda do número digitado.
O problema é que quando o foco está nele e tento fechar o form, sem digitar um valor, aparece uma mensagem de erro dizendo: ´is not a valid integer value´.
Como faço para chefar o form sem que apareça esta mensagem, sem ter que digitar um valor ?
Aguardo ajuda!!!
O problema é que quando o foco está nele e tento fechar o form, sem digitar um valor, aparece uma mensagem de erro dizendo: ´is not a valid integer value´.
Como faço para chefar o form sem que apareça esta mensagem, sem ter que digitar um valor ?
Aguardo ajuda!!!
Fdamds
Curtidas 0
Respostas
Prgdelphi
28/09/2009
neste evento on exit, coloca uma checagem para verificar se o edit não está vazio, aí sim executar o procedimento.
if Edit.text <> ´´ then
begin
//executa o seu tratamento dos 0s à esquerda.
end;
para ficar legal, crie um evento neste Edit, que só permita a digitação de numeros, caso já não tenha feito.
if Edit.text <> ´´ then
begin
//executa o seu tratamento dos 0s à esquerda.
end;
para ficar legal, crie um evento neste Edit, que só permita a digitação de numeros, caso já não tenha feito.
GOSTEI 0
Osocram
28/09/2009
Amigo.
Sempre que fizer alguma validação no OnExit e se não validar voltar o foco p o mesmo... sempre deixe uma maneira de sair do edit sem validar, Tipo se não alterar o valor, se for vazio, coisa do tipo. Senão vai vai se deparar com este erro que vc comentou.
Isso que o amigo prgdelphi comentou é uma solução.
Flw.
Sempre que fizer alguma validação no OnExit e se não validar voltar o foco p o mesmo... sempre deixe uma maneira de sair do edit sem validar, Tipo se não alterar o valor, se for vazio, coisa do tipo. Senão vai vai se deparar com este erro que vc comentou.
Isso que o amigo prgdelphi comentou é uma solução.
Flw.
GOSTEI 0
Marco Salles
28/09/2009
´is not a valid integer value´.
provavelmente é alguma conversão indevida que ocasionalmente esta sendo
feita .. Veja se seu codigo não tem alguma coisa deste tipo
inttostr(edit1.tex)
se tem ,continue a ler , senão tem esqueça a dica
tem uma outra solução ,que considero ser limpa
A partir do Delphi7 se não me falha a memória foi lançada algumas
funçoes uties de conversão
Trouque inttostr(edit1.tex) por TryStrToInt
funciona mais ou menos assim :
provavelmente é alguma conversão indevida que ocasionalmente esta sendo
feita .. Veja se seu codigo não tem alguma coisa deste tipo
inttostr(edit1.tex)
se tem ,continue a ler , senão tem esqueça a dica
tem uma outra solução ,que considero ser limpa
A partir do Delphi7 se não me falha a memória foi lançada algumas
funçoes uties de conversão
Trouque inttostr(edit1.tex) por TryStrToInt
funciona mais ou menos assim :
var a:integer; begin if TryStrToInt(edit1.Text,a) then begin conversao bem sucetida ... end; end;
GOSTEI 0