Variablen in Ojekten

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Jim92
Beiträge: 24
Registriert: Sa 29. Jan 2011, 13:09

Variablen in Ojekten

Beitrag von Jim92 »

Hallihallo

Im Rahmen eines Schulprojekts programmiere ich zur Zeit ein Kartenspiel und hab da 'nen kleines Problem:

Wie bei jedem Kartenspiel wird die Karte zufällig gezogen, was ich mit dem random Befehl und einer eigenen Prozedur (damit keine Karte doppelt vorkommt) realisiert habe. Als nächstes soll der Kartenname in einem Label angezeigt werden.Da das Spiel allerdings mehr als 300 Karten umfasst, wäre es irrsinnig für jede Karte eine eigene Aktion zu schreiben. Stattdessen soll das Programm den Namen der Karte aus einer Liste heraus nehmen, die sich in einem anderen Formular befindet. In der Theorie sieht das ganze etwa so aus:

Code: Alles auswählen

mK:=random(mGesamt)+1;
Take(mK); //Meine eigene Prozedur
mK:=mKS;
Label1.Caption:=Form3.Label[mK].Caption;//zum abfragen des Namens aus der Liste
Meine Frage wäre nun: Wie bringe ich den PC dazu genau das Label auszuwählen, das die selbe Nummer wie meine zufällige Karte hat?

Ich bin in diesem Punkt an das Ende meines Lateins gestoßen und würde mich über Lösungsvorschläge tierisch freuen!

Mit freundlichen Grüßen

Jim92
Zuletzt geändert von Lori am Sa 29. Jan 2011, 18:10, insgesamt 1-mal geändert.
Grund: Highlighter

Eb
Lazarusforum e. V.
Beiträge: 240
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: Variablen in Ojekten

Beitrag von Eb »

z.B.mit einem Array:

Code: Alles auswählen

var : karte : array[0..300] of string;
 
karte[1] := 'Pik Koenig';
karte[2] := 'Pik Dame';
falls mk die Nummer deiner Karte ist:

Code: Alles auswählen

Label1.Caption:= karte[mk]
Zuletzt geändert von Lori am Sa 29. Jan 2011, 18:10, insgesamt 1-mal geändert.
Grund: Highlighter

Jim92
Beiträge: 24
Registriert: Sa 29. Jan 2011, 13:09

Re: Variablen in Ojekten

Beitrag von Jim92 »

Danke, die Idee hatte ich auch schon, wollt aber erstmal sehn ob das vellei auch direkt geht

werds jetzt wahrscheinlich auch so machen

Danke nochmal

Antworten