No soy muy ducho en esto de dibujar y es difícil leer el código sin indentar, pero una vez indentado:
Código:
if not (gdSelected in State) then
begin
if Odd(Table1.RecNo) then
DBGrid1.Canvas.Brush.Color := TColor($00FEE2E8);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else
begin
DBGrid1.Canvas.Brush.Color := TColor($0080FF00);
if DBGrid1.Columns[DataCol].Index=0 then
begin
DBGrid1.Canvas.FillRect(Rect);
ImageList1.Draw(dbgrid1.Canvas,Rect.Left+4,Rect.Top,0,True);
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
pienso que la última llamada a DefaultDrawColumnCell no debe ir. Este método dibuja lo que se dibujaría normalmente de manera que da la impresión de que sobre-dibuja sobre lo que en las líneas anteriores dibujaste.
// Saludos