Dbgrid Colorir coluna

28/01/2010

12

Olá a todos
Uso o codigo abaixo no evento OnDrawColumnCell do Dbgrid para colorir uma coluna especifica.

procedure TFrCadComprasDet.DbgProdutosDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  inherited;
  if Column.Field = dmcliente.CdsComprasDetPRD_CODIGO then
    begin
      DbgProdutos.Canvas.Brush.Color := clAqua;
      DbgProdutos.Canvas.Font.Color  := clRed;
      DbgProdutos.Canvas.FillRect( rect );
      DbgProdutos.DefaultDrawColumnCell( Rect, DataCol, Column, state);
    end;
end;

Só que a linha selecionada (dgRowSelect) na coluna que eu colori ela fica sobreposta pela coluna colorida.
Então a linha fica selecionada mas na coluna ela fica escondida.
Eu gostaria que a coluna ficasse colorida mas a linha ficasse continua sem ficar sobreposta.

Abraços e obrigado
Neto

Responder

Posts

28/01/2010

Public Ltda

tente isto   procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if State = [] then begin if Table1.RecNo mod 2 = 1 then DBGrid1.Canvas.Brush.Color := clAqua else DBGrid1.Canvas.Brush.Color := clWhite; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;    Emerson Andrade de Souza blog com dicas: www.emersonti.blogspot.com  
Responder
Dbgrid.Columns[?].Color := clGreen;
Responder