Einzelnen Beitrag anzeigen

Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

4 Gewinnt: Spielfeld erzeugen: Felderpostionen stimmen nicht

  Alt 13. Mär 2005, 21:05
Und zwar versuche ich mich (schon wieder) an einem 4-Gewinnt. Diesmal will ich das ganze etwas geschickter anzugehen, als beim letzten Mal. Der Anfang ist erstmal, alle Felder (in meinem Beispiel Shapes) zu erzeugen und richtig zu positionieren. Dafür hab ich ein 2dimensionales Array of TShape genommen.

Feld: array[1.. 8, 1.. 8] of TShape; Mit folgendem Code will ich nun die Shapes erzeugen und positionieren:

Delphi-Quellcode:

procedure TForm1.FormPaint(Sender: TObject);
var i, j: integer;
begin
if not Shown then //damit es nur einmal ausgeführt wird
  begin
    For i := 1 to 7 do
      for j := 1 to 7 do
        begin
          Feld[i, j] := TShape.Create(self);
          With Feld[i, j] do
            begin
              Show;
              Shape := stCircle;
              Brush.Color := clWhite;
              Parent := self;
            end;
        end;
    Feld[1, 1].Left := 10; //das erste Feld vorgeben
    Feld[1, 1].Top := 10;

    For i := 2 to 7 do
      For j := 2 to 7 do
        begin
          Feld[i, j].Left := Feld[i - 1, j].Left + Feld[i, j].Width + 5; //hier braucht man das jeweils vorherige Feld zum Positionieren
          Feld[i, j].Top := Feld[i, j - 1].Top + Feld[i, j].Height + 5;
        end;
  end;

Shown := true;
end;
Das Problem: Es wird nur ein 6x6 Felder großes Spielfeld erzeugt. Die restlichen Shapes liegen oben links einfach herum, ohne irgendwie positioniert worden zu sein. Hat jemand eine Ahnung, warum?
  Mit Zitat antworten Zitat