C ++ Builder / VCL, Добавить изображения в сетку строк

Здравствуйте, у меня проблема.
Я программирую игру как мой выпускной проект, и я застрял в добавлении изображений в StringGrid, Это 2D игра-головоломка.

Я обнаружил, что мне нужно использовать функцию OnDrawCell,
Я пытался отредактировать его, но я не знаю, как оно должно выглядеть или как оно действительно работает.

Что я хочу это: если у меня есть, например буква «W» в ячейке [0] [0], я хочу показать картину стены вместо.

Я ценю любую помощь, оказанную. Жду ваших ответов, я буду гуглить до тех пор.

-2

Решение

При запуске загрузите изображение, содержащее нужную настенную картинку. Затем в OnDrawCell обработчик событий, проверьте сетку Cells значение и если W затем обнаруживается Draw() это изображение на сетке Canvas, Это действительно не становится проще, чем это.

class TForm1 : public TForm
{
__published:
TStringGrid *StringGrid1;
void __fastcall StringGrid1DrawCell(TObject* Sender,
int ACol, int ARow, const TRect &Rect, TGridDrawState State);
private:
Graphics::TBitmap *WallBmp;
public:
__fastcall TForm1(TComponent *Owner);
__fastcall ~TForm1::TForm1();
};

__fastcall TForm1::TForm1(TComponent *Owner)
: TForm(Owner)
{
WallBmp = new Graphics::TBitmap;
// fill image as needed - load a file or
// a resource, hand draw directly on
// WallBmp->Canvas, etc...
}

__fastcall TForm1::~TForm1()
{
delete WallBmp;
}

void __fastcall TForm1::StringGrid1DrawCell(TObject* Sender,
int ACol, int ARow, const TRect &Rect, TGridDrawState State)
{
...
if (StringGrid1->Cells[ACol][ARow] == "W")
StringGrid1->Canvas-Draw(WallBmp, Rect.Left, Rect.Top);
...
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]