Fórum Validação de campos #330826

06/10/2006

0

Olá pessoal...

Seguinte,

Gostaria de saber como vcs validam os campos das tabelas que trabalham...

Tipo, ja procurei artigos e exemplos a respeito e tudo que consigo achar são métodos de validação para quando o usuário clicar no ´ok´ ou seja tentar salvar os dados, mais gostaria de saber como vcs fazem pra validar na hora que o usuário ta preenchendo o campo.

Atualmente eu utilizo o OnExit de cada DBEdit, assim verifico se o dado está correto ou não, se sim vai para o proximo campo se não permanece.

Porém acho isso demasiado incômodo, e gostaria de saber como vcs validam o que o usuário entra no sistema....

Obrigado pela ajuda....

Até mais


Gardel

Gardel

Responder

Posts

06/10/2006

Tnaires

Olá

Valido os dados no Delphi de duas formas:

* quando os valores precisam ser verificados assim que são digitados, utilizo o evento OnChange do TField correspondente;

* quando a validação pode ser esperada até, digamos, o usuário clicar no botão gravar, utilizo o evento OnBeforePost do DataSet em questão.

Abraços


Responder

Gostei + 0

07/10/2006

Paullsoftware

concordo com tnaires, a melhor forma de validar os campos é na hora da gravação, informando ao usuário que: *** O Campo xxxx da questão possui um valor incorreto, favor verificar! ***

também, normalmente utilizo do evento BeforePost para verificar os dados antes de gravá-los...


Responder

Gostei + 0

09/10/2006

Faustoalves

Estive analisando as duas respostas dos amigos..
Seria possível vc´s me enviarem um exemplo de validação no BeforePost?
Grato
Fausto
faustoalves@gmail.com


Responder

Gostei + 0

09/10/2006

Marcio.theis

Eu pelo menos digamos que 85¬ dos casos uso no botão Salvar a validação, depois o BeforePost e em últimos casos o OnExit do edit...


Responder

Gostei + 0

09/10/2006

Tnaires

A intenção do exemplo abaixo é apenas mostrar o uso do Abort para impedir a conclusão do método Post em caso de erro.
procedure OnBeforePost(Sender: TDataSet);
begin
  if <condição de validação> then
  begin
    ShowMessage(´Mensagem de campo inválido´);
    Abort;
  end;
end;



Responder

Gostei + 0

09/10/2006

Gardel

Bem pessoal...

A validação no evento OnChange do TField seria a mais interessante pra mim, já que preciso validar os campos no momento em q o usuário tenta sair do campo.

Só encontrei um problema quanto a isso, caso o usuário apenas passe no campo sem mecher em nada, deixando ele vazio como está, o evento simplesmente não é disparado pq os dados não foram modificados.

Exemplo se no campo nome eu valido pra não ser vazio, quando o usuário entrar no campo, se ele não mecher, deixar como está (vazio) qdo ele sai do campo simplesmente nada acontece, agora se ele mecher algo, tipo digitar um espaço, apagar e depois tentar sair do campo ai sim dispara o evento, pq afinal ele modifico algo.

Como vcs resolvem esse problema?

Agradeço.


Responder

Gostei + 0

09/10/2006

Tnaires

Para tratar a nulidade dos dados na máquina cliente, eu utilizo a propriedade Required do objeto TField.


Responder

Gostei + 0

14/10/2006

Gardel

Utilizando o required, fica bom, único problema é que ele só valida ao tentar quando o usuario confirma a inclusão dos dados...

Poderia utizar o onValidade do TFiled também só que tambem so funciona se os dados forem previamente modificados.

A Única solução que encontrei foi colocar na propriedade DefaultExpression um valor qualquer, pode ser do tipo Hint Tipo no campo nome do cliente na DefaultExpression colocar Por favor, insira o nome do cliente, assim, quando o usuário inclui um registro essa informação vem direto no campo, daí o usuário vai ter q apagar isso pra poder digitar o valor que ele realmente quer, assim ele modifica e dispara os eventos de validação.

O único problema é que preciso das validações enquanto o usuário insere os dados, e não quando ele confirma.

Agradeço,


Responder

Gostei + 0

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

Aceitar