Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Das große Lotto-Spiel - Bet and Win (https://www.delphipraxis.net/81703-das-grosse-lotto-spiel-bet-win.html)

Jay15688 2. Dez 2006 10:17


Das große Lotto-Spiel - Bet and Win
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leutz,

und zwar muss ich für die Schule als Hausaufgabe in Info mein eigenes LottoSpiel programmieren...
Ich habe noch nicht allzu lange Info und bin daher noch ziemlich neu in der Materie...wundert euch daher nicht, wenn ich alles noch bissl umständlicher mache, als es vllt. sein müsste, aber bisher klappt alles ganz gut!

Zu meinem Problem:

Ich habe jetzt 6 Listboxen erstellt und in jeder Listbox findet eine der sechs Ziehung für die Lottozahlen statt. Das Spiel soll am Ende für 4 Spieler sein, sodass im unteren Bereich jeder Spieler 6 EditFelder hat, wo er seine Tipps abgeben kann, die dann mit den Listbox-Ziehungen oben verglichen werden müssen. Ich wollte jetzt für jeden Spieler noch einen "Auswerten" Button erstellen, wo das Ergebnis dann getestet wird, aber ich habe wie gesagt absolut keine Ahnung, wie man die Ziehungen mit den abgegebenen Tipps vergleichen kann!


Mein zweites Problem besteht darin, dass ich nicht weiß, wie ich eine Speichern/Laden Funktion hinkriege. Ich habe es mit einem einfach SaveDialog bzw. OpenDialog versucht, aber er speichert dann irgendwie immer nur die Zahl von der sechsten und letzten Ziehung ab und mein laden, füllt er alle Listboxen mit der selben (der sechsten) Zahl. Es muss natürlich später dann auch noch möglich sein, dass in diesem File, die aktuellen Geldbeträge der Spieler usw gespeichert werden.

Zitat:

procedure TForm1.Spielspeichern1Click(Sender: TObject);
begin
SaveDialog1.Title := 'Spiel speichern unter: ';
SaveDialog1.FileName := 'Savegame.sav';
SaveDialog1.Filter := '.sav';

if SaveDialog1.Execute then
Listbox1.Items.SaveToFile(SaveDialog1.FileName);
Listbox2.Items.SaveToFile(SaveDialog1.FileName);
Listbox3.Items.SaveToFile(SaveDialog1.FileName);
Listbox4.Items.SaveToFile(SaveDialog1.FileName);
Listbox5.Items.SaveToFile(SaveDialog1.FileName);
Listbox6.Items.SaveToFile(SaveDialog1.FileName);
end;
Wäre um jede Hilfe dankbar! Ich bitte euch, dass ihr mir das so genau wie möglich und am allerbesten mit Beispiel Code etc. erklärt, da ich wirklich noch recht neu bin.
Mir macht Info aber einen riesen Spaß und außerdem hat unser Lehrer gesagt, dass alle die es schaffen 15 Punkte (also eine 1+) aufgeschrieben bekommen! :)


Freue mich über jegliche Antworten!

Im Anhang befindet sich der aktuelle Stand des Programms! Ihr könnt mir natürlich auch Anhand dessen etwas erklären oder selber schon schreiben! :)


Vielen Dank schonmal für alles! :)


MfG Jay

Sharky 2. Dez 2006 10:21

Re: Das große Lotto-Spiel - Bet and Win
 
Hai Jay,

ich habe mir den Code nur kurz angesehen.
Nach deiner IF-Then Abfrage solltest Du einen Begin - End Block einbauen ;-)

Jay15688 2. Dez 2006 11:14

Re: Das große Lotto-Spiel - Bet and Win
 
Hey Sharky,

danke für die schnelle Antwort!

Wie meinst du das genau? Zum Beispiel hier soetwas klappt nicht:

Zitat:

procedure TForm1.Spielspeichern1Click(Sender: TObject);
begin
SaveDialog1.Title := 'Spiel speichern unter: ';
SaveDialog1.FileName := 'Savegame.sav';
SaveDialog1.Filter := '.sav';

if SaveDialog1.Execute then
begin
Listbox1.Items.SaveToFile(SaveDialog1.FileName);
end;
if SaveDialog1.Execute then
begin
Listbox2.Items.SaveToFile(SaveDialog1.FileName);
end;
if SaveDialog1.Execute then
begin
Listbox3.Items.SaveToFile(SaveDialog1.FileName);
end;
if SaveDialog1.Execute then
begin
Listbox4.Items.SaveToFile(SaveDialog1.FileName);
end;
if SaveDialog1.Execute then
begin
Listbox5.Items.SaveToFile(SaveDialog1.FileName);
end;
if SaveDialog1.Execute then
begin
Listbox6.Items.SaveToFile(SaveDialog1.FileName);
end;
end;

Kannst du mir es vllt als Beispiel für die ersten zwei Listboxen vormachen? Dann dürfte ich es selber hinkriegen...

Nocheinmal Entschuldigung für meine Doofheit, aber bin erst neu dabei =)


MfG Jay

Balu der Bär 2. Dez 2006 11:15

Re: Das große Lotto-Spiel - Bet and Win
 
Delphi-Quellcode:
if SaveDialog1.Execute then
begin
Listbox1.Items.SaveToFile(SaveDialog1.FileName);
Listbox2.Items.SaveToFile(SaveDialog1.FileName);
Listbox3.Items.SaveToFile(SaveDialog1.FileName);
Listbox4.Items.SaveToFile(SaveDialog1.FileName);
Listbox5.Items.SaveToFile(SaveDialog1.FileName);
Listbox6.Items.SaveToFile(SaveDialog1.FileName);
end;
Da aber die Dateiname immer gleich ist, müsste da nicht die Datei einfach überschrieben werden sodass am Ende in der Datei nur die Items von Listbox6 stehen?

Jay15688 2. Dez 2006 11:25

Re: Das große Lotto-Spiel - Bet and Win
 
So ist es leider...

Er speichert nur den Wert der ListBox6 ab und dementsprechend lädt er beim "Spiel laden" in alle 6 Listboxen nur diesen einen Wert. Wir könnte man das Problem denn lösen? Ich möchte natürlich, dass er alle Werte in dieser einen Datei abspeichert und auch dementsprechend lädt.

Freue mich über jede Idee ;)



Mfg Jay

Balu der Bär 2. Dez 2006 11:27

Re: Das große Lotto-Spiel - Bet and Win
 
Gucke dir mal Hier im Forum sucheniniDateien an.

Mittels dieser speicherst du die Daten jeder Listbox in einer eigenen Section und speicherst alle Daten in einer Datei ab. Beim Programmlauf lädst du dann die spezifischen Daten in die jeweiligen Listboxen. Tausende Beispiele und viele Anleitungen findest du über die Forensuche. ;)

Jay15688 2. Dez 2006 11:51

Re: Das große Lotto-Spiel - Bet and Win
 
Habe mir gerade zwei Tutorials durchgelesen und weiß nun wie .ini Dateien funktionieren und was man mit ihnen machen kann! Allerdings ist mir nicht so ganz klar, wie ich sie als Code in mein Programm einbinden soll...Kannst du mir da vllt. noch einen kleinen Anstoß geben? Kann ich meine schöne SaveDialog Oberfläche trotzdem behalten, wenn ich es mit der ini Funktion mache? :)


MfG Jay

Namenloser 2. Dez 2006 11:59

Re: Das große Lotto-Spiel - Bet and Win
 
Delphi-Quellcode:
procedure TForm1.Spielspeichern1Click(Sender: TObject);
var stringlist: TStringlist;
begin
  SaveDialog1.Title := 'Spiel speichern unter: ';
  SaveDialog1.FileName := 'Savegame.sav';
  SaveDialog1.Filter := '.sav';

  if SaveDialog1.Execute then
  begin
    stringlist := TStringlist.create;
    stringlist.addStrings(listbox1.items);
    stringlist.addStrings(listbox2.items);
    stringlist.addStrings(listbox3.items);
    stringlist.addStrings(listbox4.items);
    stringlist.addStrings(listbox5.items);
    stringlist.addStrings(listbox6.items);
    stringlist.SaveToFile(SaveDialog1.FileName);
    stringlist.free;
  end;
end;
Hier werden alle Items zu einer Stringlist zsuammengefügt und diese Stringlist wird dann gespeichert. Ist es das, was du willst?

Jay15688 2. Dez 2006 12:20

Re: Das große Lotto-Spiel - Bet and Win
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey NamenLozer,

habe es soeben ausprobiert und ich würde sagen, dass es mich aufjedenfall weitergebracht hat nur gibt es da immernoch ein Problem. Und zwar habe ich ja 6 ListBoxen und in jeder findet eine Ziehung statt. Wenn ich es nun mit diesem Code speichere und wieder lade, hat er im Vergleich zu vorhin noch alle Werte gespeichert, aber er lädt alle Werte in jede ListBox. Es soll ja in jede ListBox nur ein Wert geladen werden, nämlich der davor durch Zufall gezogene!

Im Anhang habe ich mal die .exe Datei inkl. diesem neuen Code...da könnt ihr es schnell ausprobieren, damit ihr besser versteht wie ich das meine ;)

Danke


MfG Jay

Namenloser 2. Dez 2006 12:25

Re: Das große Lotto-Spiel - Bet and Win
 
Mit der exe kann ich nicht viel anfangen. Wie lädst du die Daten denn?
Außerdem verstehe ich nicht, wieso du listboxen verwendest, würde denn nicht ein ganz normales label reichen? oder habe ich da was falsch verstanden :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz