Компилятор: C++ Builder
Этот пример демонстрирует, как изменить фоновый цвет определённых строк, а точнее выделяет все строки, содержащие South America жёлтым цветом.
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{ TDataSet *dataset = Column->Field->DataSet;
// Если страна из Южной Америки, то выделяем её жёлтым
if(dataset->FieldByName("Continent")->AsString == "South America")
{
DBGrid1->Canvas->Brush->Color = clYellow;
}
// Если ячейка выбрана, то делаем текст красным и жирным
if(State.Contains(Grids::gdSelected))
{
DBGrid1->Canvas->Font->Color = clRed;
DBGrid1->Canvas->Font->Style = TFontStyles() << fsBold;
}
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}