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

(Resolvido) DbGrid muda a cor das linhas ao descer com a seta pelo DbG


robinhocne

Pergunta

Pessoal estou com um probleminha basico aqui, mas não estou conseguindo resolver,

Quando eu vou percorrendo um DbGrid com a seta do teclado ou pela barra de rolagem do DbGrid ai ele pinta todas as linhas da mesma cor com a linha que estou selecionada, o codigo abaixo é o que eu utilizo;

procedure TFPesPes001.DbgPesDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 If Not odd(DtsPes.DataSet.RecNo) Then
   If Not (gdSelected in State) Then
      begin
         DbgPes.Canvas.Brush.Color:=clSkyBlue;
         DbgPes.Canvas.FillRect(Rect);
         DbgPes.DefaultDrawDataCell(rect,Column.Field,State);
      end;
   if (TAuxDBGrid(dbgpes).DataLink.ActiveRecord + 1 = TAuxDBGrid(dbgpes).Row) or (gdSelected in State) then
   begin
      dbgpes.Canvas.Brush.Color := clMoneyGreen;
      dbgpes.Canvas.Font.Style  := dbgpes.Canvas.Font.Style + [fsBold];
      dbgpes.Canvas.Font.Style  := dbgpes.Canvas.Font.Style + [fsUnderline];
      dbgpes.Canvas.Font.Color  := clBlack;
   end;
   dbgpes.Canvas.FillRect(Rect);
   dbgpes.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
   dbgpes.DefaultDrawDataCell(Rect, Column.Field, State);
end;

uma ajuda ?

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Faça a modificação para o seu uso

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

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

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

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

end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Perfeito Jhonas,

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

   If odd(DtsPes.DataSet.RecNo) then
      begin
         DbgPes.Canvas.Font.Color:= clBlack;
         DbgPes.Canvas.Brush.Color:= clMoneyGreen;
      end
   else
      begin
         DbgPes.Canvas.Font.Color:= clBlack;
         DbgPes.Canvas.Brush.Color:= clWhite;
      end;

   if (gdSelected in state) then
     DbgPes.Canvas.Brush.Color := clSkyBlue;
  // else
   //  DbgPes.Canvas.Brush.Color := clSkyBlue;

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


end;

muito Obrigado,

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