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

(Resolvido) linha do dbgrid selecionada


Alessandra (Jundiai)

Pergunta

na minha tela, eu tenho um dbgrid e um edit para pesquisa que utilizo o locate.

no dbgrid eu ativei a opção dbrowselected para deixar a linha toda pintada quando eu clicar com o mouse.

isso está funcionando.

quando eu digito alguma coisa no edit de pesquisa, como uso o comando locate, o foco no dbgrid (com uma setinha do lado esquerdo) vai para a linha referente ao que digitei, isso também está funcionando

mas eu queria que nesse momento, quando o foco for para a linha que estou pesquisando, a linha do dbgrid também fique pintada

um outro problema é que se eu deixo a opção dbrowselected como true para pintar a linha, eu não consigo fazer alteração no dbgrid

Editado por Alessandra (Jundiai)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
quando eu digito alguma coisa no edit de pesquisa, como uso o comando locate, o foco no dbgrid (com uma setinha do lado esquerdo) vai para a linha referente ao que digitei, isso também está funcionando

mas eu queria que nesse momento, quando o foco for para a linha que estou pesquisando, a linha do dbgrid também fique pintada

Coloque este código no evento OnDrawColumnCell do DBGrid, assim o registro com cursor ficará marcado durante a navegação

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin

   If odd(Query1.RecNo) then
      begin
         DBGrid1.Canvas.Font.Color:= clBlack;
         DBGrid1.Canvas.Brush.Color:= cl3DLight;
      end
   else
      begin
         DBGrid1.Canvas.Font.Color:= clBlack;
         DBGrid1.Canvas.Brush.Color:= clWhite;
      end;

   if (gdSelected in state) then
      DBGrid1.Canvas.Font.Color:= clred
   else
      DBGrid1.Canvas.Font.Color:= clBlack;

   DBGrid1.Canvas.FillRect(Rect);
   DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

um outro problema é que se eu deixo a opção dgRowselected como true para pintar a linha, eu não consigo fazer alteração no dbgrid

Isso porque ao deixar a opção dgRowselected como true, a opção dgEditing fica false automaticamente ... ou seja, se voce quiser a linha toda pintada, o foco não pode estar em um campo especifico

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...