Ir para conteúdo
Fórum Script Brasil
  • 0

campos obrigatorios e não obrigatorios dentro do mesmo form?


claudyo

Pergunta

Tenho um formulario de cadastro de clientes onde tenho campos obrigatorios mais vou precisar colocar mais um campo esse opcional fiz uma funçao q verifica os campos em branco eis o codigo

procedure Tfrmcadastro.btnOkClick(Sender: TObject);
var i,j:integer;
begin
    j:=0;
    for i:=0 to frmcadastro.ComponentCount -1 do
    begin
        if frmcadastro.components[i] is TEdit then
         begin
           if Tedit(components[i]).text=''then
           j:=j+1;
         end;
    end;
     if j>0 then
     application.MessageBox('Todos os Campos Devem Ser Preenchidos','Aviso',mb_iconinformation+mb_okcancel)
    else

Agora quero sabe como coloca nesse form um campo opcional, e se não for pedir muito keria sabe também como puxar o foco pra um campo obrigatorio q esteja em branco

desde já agradeço

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Opa

faz o seguinte...

Pra cada Edit que voce quiser que seja obrigatorio o preenchimento, coloque a Tag dele pra 1

então voce usa essa sua funcao só que modificada

procedure Tfrmcadastro.btnOkClick(Sender: TObject);
var i:integer;
begin
    for i:=0 to frmcadastro.ComponentCount -1 do
    begin
        if frmcadastro.components[i] is TEdit then
         begin
           if (Tedit(components[i]).tag = 1) and Tedit(components[i]).text='') then
           begin
             application.MessageBox('Alguns campos obrigatorios não foram preenchidos!','Aviso',mb_iconinformation+mb_ok);
             Tedit(components[i]).SetFocus;
           end;
         end;
    end;

abraco

Link para o comentário
Compartilhar em outros sites

  • 0
Opa

faz o seguinte...

Pra cada Edit que voce quiser que seja obrigatorio o preenchimento, coloque a Tag dele pra 1

então voce usa essa sua funcao só que modificada

procedure Tfrmcadastro.btnOkClick(Sender: TObject);
var i:integer;
begin
    for i:=0 to frmcadastro.ComponentCount -1 do
    begin
        if frmcadastro.components[i] is TEdit then
         begin
           if (Tedit(components[i]).tag = 1) and Tedit(components[i]).text='') then
           begin
             application.MessageBox('Alguns campos obrigatorios não foram preenchidos!','Aviso',mb_iconinformation+mb_ok);
             Tedit(components[i]).SetFocus;
           end;
         end;
    end;

abraco

Obrigado pela atençao Churc, isso quase resolve meu problema pois minha duvida maior é com os campos não obrigatorios,o que faço com eles, como ignora-los na hora de capturar os dados caso ele esteja em branco???? Se puder me ajudar fica grato

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, 'claudyo'!

Sendo o Delphi orientado a eventos, o correto, em minha opinião, é você colocar suas críticas no momento em que o usuário clica em ok para gravação.

A rotina realiza as críticas e manda o cursor de volta para onde está o problema Obrigando-o a preencher os dados.

Quando estes não são obrigatórios e os campos não foram preenchidos, basta você tratá-los normalmente na gravação, ou filtrá-los caso você faça uma rotina de gravação personalizada.

Link para o comentário
Compartilhar em outros sites

  • 0
Oi, 'claudyo'!

Sendo o Delphi orientado a eventos, o correto, em minha opinião, é você colocar suas críticas no momento em que o usuário clica em ok para gravação.

A rotina realiza as críticas e manda o cursor de volta para onde está o problema Obrigando-o a preencher os dados.

Quando estes não são obrigatórios e os campos não foram preenchidos, basta você tratá-los normalmente na gravação, ou filtrá-los caso você faça uma rotina de gravação personalizada.

Vlw pela atençao Denis qt a validar no ok já tinha pensado nisso também e já tinha feito dessa forma, mais de qualker forma obrigado. Agora minha duvida é qt a captura dos dados se esse campo q não é obrigatorio não vai travar o sistema se ele estiver em branco mesmo se o campo correspondente na minha tabela não for obrigatorio, tipo se eu preciso fazer alguma coisa pra ele não travar caso esteja em branco da uma olhada no codigo

begin
//Captura dos dados do formulario
   sNome:=quotedstr(edtnome.Text);
   sTel:=edtTel.text;
   sEnd:=quotedstr(edtend.Text);
   sBairro:=quotedstr(edtbairro.Text);
   sTelopt:=edtTelopt.Text;
//Montagem do comando sql
    sSql:= 'INSERT INTO WorldPizza (nome,endereco,bairro,tel,telopt)'+
           'Values ('+snome+','+send+','+sbairro+','+stel+','+stelopt+')';
//Executar o comando
    dm.cmd.commandtext:=sSql;
    dm.cmd.execute;
    dm.qryclientes.active:=false;
    dm.qryclientes.active:=true;
end;
begin
    j:=0;
    for i:=0 to frmcadastro.ComponentCount -1 do
    begin
        if frmcadastro.components[i] is TEdit then
         begin
           if (Tedit(components[i]).tag = 1) and (TEdit(components[i]).text = '') then
           j:=j+1;
           break;
         end;
    end;
     if j>0 then
     begin
     application.MessageBox('Todos os Campos Devem Ser Preenchidos','Aviso',mb_iconinformation+mb_okcancel);
     end;
     if length (trim(edttel.Text))<>8 then
     begin
      Application.MessageBox('Telefone Invalido','Aviso',mb_iconinformation+mb_okcancel);
              edttel.SetFocus;
              edttel.selectAll;
     end
    else

eu tenho q mudar alguma coisa????? Se puderem me ajuda eu agradeço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...