Hola Xavi:Si lo que quieres es que al seleccionar una fila se vea de otro color, prueba poniendo el siguiente código en el evento OnDrawColumnCell del TDBGrid:
if (State.Contains(Grids::gdSelected))
{
DBGrid1->Canvas->Brush->Color = clRed;
DBGrid1->Canvas->Font->Color = clWhite;
}
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
... o este otro código si lo que quieres es que una fila se vea de distinto color solo en caso de que se cumpla alguna condición, por ejemplo:
TDataSet *dataset = Column->Field->DataSet;
if (!State.Contains(Grids::gdSelected))
{
// aquí ponemos la condición que
// nos servirá para decidir el color
if(dataset->FieldByName("Campo2")->AsInteger >= 1000)
{
DBGrid1->Canvas->Brush->Color = clRed;
DBGrid1->Canvas->Font->Color = clYellow;
}
}
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
Saludos.