15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как изменить цвет строки в DBGrid.

Компилятор: 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);
}