Besto
05-09-2008, 08:12:19
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:
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.
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:
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.