Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Popin

[Resolvido] Verificando campos obrigatórios

Recommended Posts

Como faço para que quando eu for salvar um cadastro seja feita a verificação dos campos obrigatórios e caso um obrigatório não esteja preenchido emita uma mensagem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha ao pressionar o botão no evento "onkeypress" você deve verificar atraves de um IF cada caixa se está vazia ou nao. Caso esteja uma vazia deverá aparecer a mensagem na tela para o usuário.

 

 

Tipo assim

 

IF edit1.text = '' or edit2.text = '' or edit3.text = '' or editN.text = '' then
   Begin
     Messagebox([b]digite os parametros aqui[/b]);
   End;

 

Acho que isso já resolve a grosso modo. Claro que se quiser refinar dá e muito, exemplo... você pode validar cada dado digitado ao sair(onexit) de cada campo, com isso o programa fica ainda mais interessante e evita que o user faça bobagens.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

pode utilizar também um parametro especial

 

vamos supor que ele nao digitou o Nome

 

if bbNovo.Text = '' then
begin
   Application.Messagebox('Informe um nome ao cadastro','Aviso',MB_ICONINFOMATION);
   edtNome.SetFocus;
   exit;
end;

isso daria uma tela de erro personalizada com o Nome da janela chamada AVISO e com icone padrao do windowns de informação!

e colocaria o cursor do mause no edit do nome

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o código que você me passou no OnKeyPress do botão gravar, mas ele não da mensagem, pois vem uma mensagem que parece erro de banco,ja que no banco o campo não pode ser null.

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TFrmCidade.BtnGravarCLick(Sender: TObject)

begin

DM.TbCidade.Post;

DM.TbCidade.ApplyUpdates;

 

if DbEdit2.TEXT = '' then

begin

Application.MessageBox('Preencha o Campo','AVISO',MB_ICONINFORMATION);

DBEdit2.SetFocus;

end

end;

 

 

 

ta ai o código que esta no botão gravar do form cidade.

Ele teria que verificar se o campo com o nome da cidade esta preenchido, mas quando deixo ele em branco e tento gravar, me traz um erro de inclusão no banco.

 

Sera que naum teria como tratar esse erro?

Qualquer ajuda é bem vinda pois não estou conseguindo fazer a verificação de campos obrigatórios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desse jeito você deve fazer ao contrário :

 

procedure TFrmCidade.BtnGravarCLick(Sender: TObject)
begin
  if DbEdit2.TEXT = '' then
  begin
    Application.MessageBox('Preencha o Campo','AVISO',MB_ICONINFORMATION);
    DBEdit2.SetFocus;
  end
  else
  begin
     DM.TbCidade.Post;
     DM.TbCidade.ApplyUpdates;
  end;
end;

Mas outro jeito de se fazer é usar Try - Except...Você tenta gravar, se der erro você mostra de campo obrigatorio nao preenchido, o unico problema é que se por ventura você tentar inserir um registro com uma chave primaria duplicada aparecerá a mesma mensagem de campo obrigatorio nao preenchido, quando na realidade isto não acontece!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só explicando o erro do seu código. Você mandou gravar os dados (DM.TbCidade.Post;) antes do if imaginei que fosse isso e por isso pedi que postasse seu código.

 

Tente melhorar o código e veja se ja resolve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para que quando eu for salvar um cadastro seja feita a verificação dos campos obrigatórios e caso um obrigatório não esteja preenchido emita uma mensagem?

 

 

você está utilizando qual componente para acesso aos dados?

 

Eu utilizo ClientDataSet, e nele possui uma propriedade REQUIRED (acho que é assim que se escreve), trabalhe encima dessa propriedade. tenho uma função, em casa, que trata isso para todos os ClientDataSets do form, se quiser me manda uma MP com seu email que passo ela pra você

Compartilhar este post


Link para o post
Compartilhar em outros sites

desse jeito você deve fazer ao contrário :

 

procedure TFrmCidade.BtnGravarCLick(Sender: TObject)
begin
  if DbEdit2.TEXT = '' then
  begin
    Application.MessageBox('Preencha o Campo','AVISO',MB_ICONINFORMATION);
    DBEdit2.SetFocus;
  end
  else
  begin
     DM.TbCidade.Post;
     DM.TbCidade.ApplyUpdates;
  end;
end;

Mas outro jeito de se fazer é usar Try - Except...Você tenta gravar, se der erro você mostra de campo obrigatorio nao preenchido, o unico problema é que se por ventura você tentar inserir um registro com uma chave primaria duplicada aparecerá a mesma mensagem de campo obrigatorio nao preenchido, quando na realidade isto não acontece!!!

 

 

Itepi, agora deu certo,mas quando coloco mais de um DbEdit no if por exemplo 'if DBEdit2.Text = ' ' or DBEdit3 = ' ' then' ele da um erro de operador logico mas naum consegui resolver. você consegue identificar algum erro de lógica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde está o código com o problema atual?<_<

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal. agora consegui resolver meu problema, esta funcionando corretamente.vlw

 

Legal cara, que bom que resolveu, precisando de algo a mais é só retornar.

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.