1.) die Bitmaps sollten in FormCreate erzeugt und geladen werden
also z.B. ein Bitmap für einen grünen Stein und ein Bitmap für ein rotes Männchen.
2.)
du musst dir in einem 2-dimensionalen Array merken, auf welcher Position welches bitmap anzuzeigen ist.
spielfeld : array[0..100, 0..100] of Byte;
3.) in OnDrawCell wird nur gezeichnet, sonst nix!!!
Delphi-Quellcode:
Procedure TForm1.DrawGrid1ondrawcell(Sender:TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Begin
case spielfeld[ACol, ARow] of
0: ; // kein Bild
1: DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, bitmapGStein);
2: DrawGrid1.Canvas.Draw(Rect.Left, Rect.Top, bitmapRotesMann);
end;
end;
4.) in OnSelectCell wird der Inhalt des Spielfelds geändert und die Zelle neu gezeichnet
Delphi-Quellcode:
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
wert : Byte;
begin
wert := spielfeld[ACol, ARow];
wert := (wert+1) mod 3;
spielfeld[ACol, ARow] := wert;
DrawGrid1.Invalidate;
end;