Я пытался обрабатывать событие OnDrawCell, т.к. в нём есть необходимые параметры для закраски, но в таком случае:
1) Ячейки закрашиваются сразу после запуска программы, а мне надо по нажатии Button;
2) Поверх закрашеннных ячеек невозможно вывести текст.
Я работал вот с этим кодом:
Код: Выделить всё
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
TGridDrawState State)
{
TStringGrid *p=(TStringGrid*)Sender;
if (p->Cells[ACol][ARow]==" ") {
p->Canvas->Brush->Color=clRed;
} else {
p->Canvas->Brush->Color=clGreen;
}
p->Canvas->FillRect(Rect);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
StringGrid1->Cells[1][2]=" ";
}