Ok, also ich habe mich ein Stück weit vor gewagt, aber nur insofern, als dass ich versuche irgendeinen Weg zu gehen, damit es überhaupt geht.
Die Deklaration der Satzklasse sieht nun so aus:
Delphi-Quellcode:
// Satz-Klasse
TE_Satz = class
private
FAusgabe: TE_AusgabeListe; //unwissend übernommen, damit es überhaupt geht
FGames : array[1..2] of Byte; //soll die spiele innerhalb des satzes zählen
FActSet : Byte; //welcher satz
public
// setzt GamePunkte und gibt zurück, ob dar Satz beendet ist
constructor Create(Ausgabe: TE_AusgabeListe);
function SetGamePoint(const Spieler: TE_Spieler; const Undo: Boolean) : Boolean;
end;
Und folgendes gibts noch an Code. Die masse ist nur abgeschrieben und zusammengestammelt.
Delphi-Quellcode:
constructor TE_Satz.Create(Ausgabe: TE_AusgabeListe);
begin
FAusgabe := Ausgabe;
//was auch immer hier geschieht
end;
function TE_Satz.SetGamePoint(
const Spieler: TE_Spieler;
const Undo: Boolean) : Boolean;
begin
if Spieler = tskein
then Exit;
// Nullprüfung:
if (FGames[Ord(Spieler)] = 0)
and Undo
then
Exit;
if Undo
then
Dec(FGames[Ord(Spieler)])
else
Inc(FGames[Ord(Spieler)]);
ShowMessage(inttostr(FGames[Ord(Spieler)]));
//FGames wird korrekt befüllt
end;
Das Showmessage stimmt schonmal. Nur komme ich derzeit nicht an die Daten ran, weil ich das Konstrukt um die Daten nicht verstehe.
Entscheidend scheint mir das hier zu sein:
Delphi-Quellcode:
// Datenhaltung für Sätze
TE_SatzDaten = record
Punkte: array[1..2] of Byte;
TieBreak: array[1..2] of Byte;
end;
// array der Satzdaten
TE_SatzArray = array of TE_SatzDaten;
TE_AusgabeDaten = record
// Punkte der Sätze
Saetze: TE_SatzArray;
// Wer hat grade Aufschlag
Aufschlag: TE_Spieler;
// Aktuelle Punkte im Spiel
AktSpiel: array[1..2] of TE_Punkte;
// Wie umkämpft?
AnzDeuce: Word;
// Gerade im TieBreak?
AktTieBreak: Boolean;
end;
Aber wie sieht denn nun mein Aufruf in der SetzeLabels aus?
Daten.Saetze...!?