Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: [oop] funktion einer oberklasse von einer unterklasse au

  Alt 10. Aug 2007, 12:07
Zitat von Hansa:
Da hat er zwar Recht, aaaber soweit ich weiß werden die Karten im Quadrat angeordnet. Wird eine Anweisung gebraucht "drehe Karte in Reihe 2 Spalte 4 hoch", dann sollte man das 2-dimensional nachbilden.
Und was hat das mit einem zwei dimensionalen Array zu tun?
Delphi-Quellcode:
procedure TMemoryField.IniTMemoryField;
var
  i : Integer;
  Card : TCard;
begin
  for i := 0 to FCountCards - 1 do
  begin
    Card := TCard.Create(nil);
    Card.Parent := FParent;
    Card.Font.Style := [fsBold];
    Card.Font.Size := 14;
    Card.OnFlip := OnFlip;

    Card.Height := 50;
    Card.Width := 50;
    Card.Left := (Card.Width + FPadding) * (i div Trunc(sqrt(FCountCards)));
    Card.Top := (Card.Height + FPadding) * (i mod Trunc(sqrt(FCountCards)));

    if not Odd(i) then
      Card.Value := i
    else
      Card.Value := i - 1;

    Add(Card);
  end;
end;
Und schon sind sie quadratisch angeordnet.


Zitat:
Allerdings wäre es tatsächlich nicht schlecht, wenn die Karte selber wüsste, ob sie schon umgedreht ist oder nicht, wie sie angezeigt wird usw. Also wirklich OOP-mäßig. Was bietet sich da nun am besten an ? Wer hätte es gedacht ? Ein Stringgrid. Man könnte auch eine Stringliste nehmen, aber die hat keine bereits eingebauten Spalten und Zeilen. Die Funktion des Spiels kann man da ganz einfach in die Objects-Eigenschaft reinpacken.
Ich habe Panels genommen. Lös dich endlich mal von deinem Zeilen und Spalten. Die sind für die Logik vollkommen unerheblich.

Ich habe es noch etwas ausgearbeitet. Ich werde es gleich hier vorstellen in der OpenSource-Sparte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat