Also, hier jetzt ein weiterer Vorschlag:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var Farbe: Array of Array of TColor;
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var x,y:Integer; begin setlength(farbe,drawgrid1.colcount,drawgrid1.rowcount); farbe[1,2] := cllime; for x := 1 to drawgrid1.colcount-1 do begin for y := 1 to drawgrid1.rowcount-1 do begin drawgrid1.Canvas.brush.color := Farbe[x,y]; drawgrid1.Canvas.FillRect(drawgrid1.CellRect(x,y)); end; end; end; |
Mit dieser Version kannst du einfach z.B. mit farbe[2,3] := clred das Kästchen mit den Koordinaten 2(x) und 3(y) rot einfärben. Die Werte der einzelnen Kästchen kannst du dann auf die gleiche Art auslesen.
Damit die Kästchen am Anfang nicht schwarz sondern weiß sind solltest du in die FormCreate-Methode dann folgendes schreiben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormCreate(Sender: TObject); var x,y:Integer; begin for x := 1 to drawgrid1.colcount-1 do begin for y := 1 to drawgrid1.rowcount-1 do begin farbe[x,y] := clwhite; end; end; farbe[1,1] := clred; farbe[1,2] := cllime; end; |
Damit werden die Anfangswerte zugewiesen.
Allerdings gibt es noch ein Problem: Wenn ich die Werte in der FormCreate-Methodezuweise funzt alles normal, wenn ich sie aber zuweise während das Programm schon läuft geht es nicht. Weiß jemand an was das liegt?
Mari