Я пытался сделать это:
void __fastcall TTetrisGame::DrawGrid1DrawCell(TObject *Sender, int ACol, int ARow,
TRect &Rect, TGridDrawState State)
{
this->Canvas->Brush->Color=clBlue;
this->Canvas->FillRect(Rect);
}
Но это действительно странный результат. Я поместил свою StringGrid в середину окна, но я не вижу никакого синего цвета. Вместо этого это прозрачно. В правом верхнем углу моего окна я вижу цветную синюю решетку.
Что я делаю неправильно?
Как я могу покрасить каждую клетку индивидуально?
Canvas
,Внутри вашего OnDrawCell
обработчик события, this
ссылается на родительскую форму, потому что обработчик является членом TTetrisGame
учебный класс. Таким образом, вы рисуете на форме Canvas
, Вам нужно рисовать на сетке Canvas
вместо:
void __fastcall TTetrisGame::DrawGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
{
DrawGrid1->Canvas->Brush->Color=clBlue;
DrawGrid1->Canvas->FillRect(Rect);
}
Других решений пока нет …