Dbgrid Colorir coluna
28/01/2010
0
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
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
Antônio Neto
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)