Also ich hab jetzt mal ein wenig rumgetestet, aber es funktioniert garnicht so wie es sollte.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| for x := 0 to XMax do for y := 0 to YMax do begin if Spielfeld[x,y] > 0 then StrGrdSpiel.Cells[x,y] := IntToStr(Spielfeld[x,y]) else StrGrdSpiel.Cells[x,y] := ''; end; StrGrdSpiel.Invalidate; |
Hier erstelle ich im Moment das Spielfeld. Bisher werden noch Zahlen verwendet. Diese Zahlen sollen nun durch entsprechende Farben ersetzt werden.
Ich habe also das OnDrawCell Ereignis benutzt.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TFrmMain.zelleFaerben(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if StrGrdSpiel.Cells[ACol,ARow] = '1' then begin Canvas.Brush.Color := clRed; Canvas.FillRect(Rect); end; end; |
Testweise erstmal nur für Zellen mit dem Wert 1. Allerdings ist das Ergebnis nun, dass er mir 2 rote Quadrate ca. 1cm über meinem Stringgrid malt. Er malt also nicht in das Stringgrid, sondern irgendwo auf dem Formular.
Jmd. eine Idee wodran das liegen kann?