Al fin he dado con la solución al problema
.
Aqui la pongo para quien le pueda servir. Gracias fly por tu tiempo e interes.
En primer lugar hay que poner la propiedad "DefDrawBefore" del ib_Grid en "True"(por defecto).
En el "uses" hay que poner "IB_Components".
Tenemos que atacar el evento "OnGetCellProps" del ib_Grid y escribimos lo siguiente:
Código Delphi
[-]
procedure TFichaOfertas.IB_Grid1GetCellProps(Sender: TObject; ACol,
ARow: Integer; AState: TGridDrawState; var AColor: TColor; AFont: TFont);
var
Datos: string;
Columnas: TIB_Column;
begin
if Tablas.dsOfertas.Active then
begin
with Tablas.dsOfertas.Dataset do
begin
BufferRowNum:= ib_Grid1.DataRow[ARow];
if BufferRowNum > 0 then
begin
Columnas:= ib_Grid1.GridFields[ib_Grid1.DataCol[ACol]];
if Assigned(Columnas) and (Columnas.FieldName = 'ESTADO') then
begin
Datos:= BufferFieldByName('ESTADO').AsString;
if Datos = 'Activo' then
if Acolor = ib_Grid1.Color then
AColor:= clLime;
end;
end;
end;
end;
if Tablas.dsOfertas.Active then
begin
with Tablas.dsOfertas.Dataset do
begin
BufferRowNum:= ib_Grid1.DataRow[ARow];
if BufferRowNum > 0 then
begin
Datos:= BufferFieldByName('ESTADO').AsString;
if Datos = 'Activo' then
if Acolor = ib_Grid1.Color then
AColor:= clRed;
end;
end;
end;
end;
Gracias por vuestra ayuda. Saludos
.