Thema: Delphi drawgrid

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: drawgrid

  Alt 4. Apr 2005, 17:53
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;
Andreas
  Mit Zitat antworten Zitat