Hola,
tengo un problema para cambiar el color de una celda en un dbgrid.
De primeras me va bien, pero cuando cambio de un color a otro me lo cambia con un registro de retraso, es decir, el primer registro del otro color me lo pone con el color anterior.
Os pongo el código que uso:
Código Delphi
[-]procedure Tformulario1.BaseEquiDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with Sender as TDBGrid do
begin
if (datacol=4) then
begin
case frDatos.tbEqu.FieldByName('Estado').AsInteger of
1: begin
columns[4].Font.Color := $009900;
end;
3: begin
columns[4].Font.Color := $FF0000;
columns[4].Font.Style := [fsBold];
end;
25: begin
columns[4].Font.Color := $FF9900;
columns[4].Font.Style := [fsBold];
end;
26: begin
columns[4].Font.Color := $FF00CC;
columns[4].Font.Style := [fsItalic];
end;
end;
end;
end;
BaseEqui.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
No sé que puede estar mal, he estado mirando por los foros y en principio parece que es así, no he encontrado nada.