Como usar o OnValidate?

17/01/2006

Olá estou querendo validar um dado fornecido pelo usuário, estou usando OnValidade no Field, esse é o melhor método? Pois não queria usar o OnExit do Componente... Porém quando uso a minha função, ele simplesmente não limpa o conteúdo do campo, já debuguei e ele passa no codigo do Clear, mas não limpa, segue o codigo:

  if (not Empty(Sender.AsString))and (not Valida(2, Sender.AsString)) then
  begin
   TbPrincipalCNPJ.Clear;
   DBEdit3.Clear;
   Exit;
  end;


Lembrando que as duas funções do IF, são funcoes criadas por mim...


Desde já agradeço

[]s


Titanius

Respostas

17/01/2006

Titanius

sobe...


Responder Citar

17/01/2006

Bruno Belchior

Normalmente no [b:03f01c9eba]OnValidate[/b:03f01c9eba] eu apenas levanto uma exceção, sendo assim o foco já cai no Controle associado ao Field e aparece a mensagem desejada...


Responder Citar

18/01/2006

Titanius

[quote:a32849df45=´Bruno Belchior´]Normalmente no [b:a32849df45]OnValidate[/b:a32849df45] eu apenas levanto uma exceção, sendo assim o foco já cai no Controle associado ao Field e aparece a mensagem desejada...[/quote:a32849df45]

Fala aí Bruno, poderia dar um exemplo do seu uso? Pois queria que limpasse o Field, assim forçaria o usuário a digitar novamente a informação.


[]s


Responder Citar

18/01/2006

Bruno Belchior

Gerando uma exceção o Foco volta para o Controle ligado ao TField e seleciona todo o texto, sendo assim creio que nem seria necessário apagar mas de qualquer forma isso serviria:
procedure TFrmTeste.ClntDtStTeste1NAMEValidate(Sender: TField);
begin
  if Sender.AsString <> ´Bruno Belchior´ then
  begin
    DbEdtNome.Clear;
    raise Exception.Create(´O nome está errado´);
  end;
end;



Responder Citar

18/01/2006

Titanius

Valeu bruno, agora uma ultima pergunta,

Para validar alguma informação de algum campo, o certo mesmo eh usar o OnValidate, ou não? Pois colocar no OnExit é foda né!?


[]s


Responder Citar

18/01/2006

Bruno Belchior

Sim, os próprios cursos preparatórios para certificação borland recomendam essa metodologia...


Responder Citar

18/01/2006

Titanius

Valeu Bruno...


[]s


Responder Citar

18/01/2006

Adriano Santos

Valeu bruno, agora uma ultima pergunta, Para validar alguma informação de algum campo, o certo mesmo eh usar o OnValidate, ou não? Pois colocar no OnExit é foda né!? []s


Só um comentário. No onExit ainda tem o problema do cara não passar pelo campo e clicar direto em Ok, Confirma e etc forçando nos a prever isso tb...rsr :wink:


Responder Citar