Array
(
)

Como usar o OnValidate?

Titanius
   - 17 jan 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:

#Código


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
   - 17 jan 2006

sobe...


Bruno Belchior
   - 17 jan 2006

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


Titanius
   - 18 jan 2006


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


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


Bruno Belchior
   - 18 jan 2006

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:#Código

procedure TFrmTeste.ClntDtStTeste1NAMEValidate(Sender: TField);
begin
if Sender.AsString <> ´Bruno Belchior´ then
begin
DbEdtNome.Clear;
raise Exception.Create(´O nome está errado´);
end;
end;



Titanius
   - 18 jan 2006

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


Bruno Belchior
   - 18 jan 2006

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


Titanius
   - 18 jan 2006

Valeu Bruno...


[]s


Adriano Santos
   - 18 jan 2006


Citação:
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: