Problema com o OnExit do edit

Delphi

28/09/2009

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!!!


Fdamds

Fdamds

Curtidas 0

Respostas

Prgdelphi

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.


GOSTEI 0
Osocram

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.


GOSTEI 0
Marco Salles

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 :

var
a:integer;
begin
 if TryStrToInt(edit1.Text,a) then
    begin
      conversao bem sucetida ...
    end;
end; 



GOSTEI 0
POSTAR