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

Não mudar registro do dbgrid


nicolasbraz

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0
Tenho um dbgrid com varios registros, quando o usuario está cadastrando um produto se ele clicar no registro de baixo ele muda o registro atual deixando o de cima incompleto, como posso bloquear isso ?

Voce pode testar o campo do dbgrid, se ele não estiver preenchido o foco do cursor deve retornar ao campo, até que a condição esteja satisfeita.

exemplo: Use o evento OnKeyPress do DBGrid

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin

     if  selectedindex = 1 then
        begin

            if CDS_CadastroFUNCAO.Value = '' then
                begin
                    DBGrid1.SetFocus;
                    DBGrid1.SelectedIndex := 1;
                    exit;
                end;
        end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas tentei colocar a condição.

procedure TFrmSaida.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   if  dbgrid1.selectedindex = 1 then
      begin
          if (dmdados.saidaproduto.State In [dsInsert] ) Then
              begin
                  DBGrid1.SetFocus;
                  DBGrid1.SelectedIndex := 1;
                  exit;
              end;
      end;
end;

Mas não deu certo ainda :S

O jeito que você me passou é para string o meu campo é inteiro, tentei colocar se o valor for = 0 mas também não deu.

Link para o comentário
Compartilhar em outros sites

  • 0

if  dbgrid1.selectedindex = 1 then
onde selectedindex é o numero da coluna do dbgrid que voce deseja testar exemplo: se selectedindex = 0 significa que a coluna a ser testada é a coluna 1 se selectedindex = 1 significa que a coluna a ser testada é a coluna 2 se selectedindex = 2 significa que a coluna a ser testada é a coluna 3 Voce tambem pode testar o nome do campo da tabela
if  selectedindex = 1 then
    begin
       if (CDS_FuncaoCOD_EMP.AsInteger  = 0) or (CDS_FuncaoCOD_EMP.AsString  = '') or (DBGrid1.Columns[0].Field.AsInteger = 0) then
          begin
              DBGrid1.SetFocus;
              DBGrid1.SelectedIndex := 1;
              exit;
          end;
                    
    end;

abraç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...