Delphi-Quellcode:
procedure TfrmMain.DrawMap();
var
x,y: Integer;
begin
for x := 0 to 7 do begin
for y := 7 downto 0 do begin
Feld[x,y].Shape := TShape.Create(self);
with Feld[x,y].Shape do begin
Parent := frmMain;
Top := x*SHAPEHEIGHT+TOPSPACE;
Left := y*SHAPEWIDTH+LEFTSPACE;
Width := SHAPEWIDTH;
Height := SHAPEHEIGHT;
Brush.Style := bsSolid;
Pen.Style := psSolid;
if ((x+y mod 2) = 1) then begin
Pen.Color := clBlack;
Brush.Color := clBlack;
end
else begin
Pen.Color := clWhite;
Brush.Color := clWhite;
end;
end;
Feld[x,y].Frei := true;
end;
end;
end;
Ich erzeuge ein Schachfeld druch 2 For-Schleifen (x=0-7,y=0-7) realisiert mi 8²-Shapes. Jetzt gilt es diese Shapes zu färben. Eigentlich müsste es ja so sein, dass jedes Feld, wo x+y mod 2 = 1 ist, also ungerade ist, Schwarz gefärbt wird. Allerdings sieht das in der Praxis ganz anders aus: Ich habe 8² Shapes. Bei den obersten Reihen läuft alles korreckt, erstes weiß, zweites schwarz, etc. Ab Reihe 3 sind alle Felder weiß... warum?