Erro na validação e na mascara de CPF e CNPJ

16/12/2020

15

Olá, estou sendo assombrado pelo fantasma dos erros delhpianos, o erro em questão é este: "invalid input value. Use escape key to abandon changes"
Ele ocorre quando ao digitar o CPF ou CNPJ algum numero fica faltando.
Utilizo uma mascara no seguinte estilo:

ECPF.MaxLength := 14;  // Quantidade maxima de caracteres contando com os . e -
TStringField(Query.FindField('CPFCNPJ')).EditMask :=  '000\.000\.000\-00;0; ';


O mesmo processo para o CNPJ.
Tentei barrar com o seguinte codigo.

if ComboTipo.ItemIndex = 0 then
          begin
             if Length(ECPF.Text) < 14 then
              raise Exception.Create('É necessário informas todos os números do CPF!');
          end


Porém quase sem sucesso, ao implementar isto ao KeyDown do Edit:

if Key = #13 then
begin
   if ComboTipo.ItemIndex = 0 then
          begin
             if Length(ECPF.Text) < 14 then
              raise Exception.Create('É necessário informas todos os números do CPF!');
          end;
end;


Já consegui exibir minha mensagem RAISE, porem acompanhada com a mensagem do erro: "invalid input value. Use escape key to abandon changes"

Alguem consegue me auxiliar?
Preciso tratar esse erro, mas ele passa batido pelo onExit do Edit, como faço para tratar esse erro e viver feliz para sempre?

Utilizo banco SQLite e Delphi 10.2 Tokyo

Deste já obrigado pela atenção
Ramboli

Ramboli

Responder

Post mais votado

16/12/2020

Verifique se isso ajuda:

http://www.activedelphi.com.br/forum/viewtopic.php?t=64806&sid=afc9488f3a44cb2cee069723d493de35


Ajudou bastante, muito obrigado <3 <3

Ramboli

Ramboli
Responder

Mais Posts

16/12/2020

Nomad

Verifique se isso ajuda:

http://www.activedelphi.com.br/forum/viewtopic.php?t=64806&sid=afc9488f3a44cb2cee069723d493de35
Responder

16/12/2020

Ramboli

Se não for pedir demais, ta ocorrendo algo estranho agora. Consegui com que emita apenas a mensagem Raise, porem, sempre cai na condição:

begin
             if Length(ECPF.Text) < 14 then
              raise Exception.Create('É necessário informas todos os números do CPF!');
          end;


Por algum motivo, sempre esta caindo, 14 é o numero de caracteres do CPF juntamente com os caracteres da mascara, se eu colocar 11, que são apenas os caracteres do CPF, ele pula o evento, mesmo se eu preencher totalmente os espaços ou se deixar totalmente nulo, ele se comporta igual, alguma dica?

Obrigado e desculpe novamente
Responder

17/12/2020

Ramboli

Se não for pedir demais, ta ocorrendo algo estranho agora. Consegui com que emita apenas a mensagem Raise, porem, sempre cai na condição:

begin
             if Length(ECPF.Text) < 14 then
              raise Exception.Create('É necessário informas todos os números do CPF!');
          end;


Por algum motivo, sempre esta caindo, 14 é o numero de caracteres do CPF juntamente com os caracteres da mascara, se eu colocar 11, que são apenas os caracteres do CPF, ele pula o evento, mesmo se eu preencher totalmente os espaços ou se deixar totalmente nulo, ele se comporta igual, alguma dica?

Obrigado e desculpe novamente


Encontrei o erro, porem não sei como consertar, pois no CPF ele esta comendo 2 caracteres, sempre 2, apos o -, já o CNPJ, ele esta comendo caracteres aleatorios, as vezes come 1, as vezes 2, as vezes nem come
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar