Die Einstellungen sollen gespeichert werden. Wie soll die saubere Methode aussehen ? Welche Komponenten müssen verwendet werden, ich verstehe es nicht ganz, Hilfe !??
Delphi-Quellcode:
Das ist meine Form mit den einstellungen:
{=====================================================================}
procedure TForm15.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:
begin
Form1.mediaPlayer1.FileName := 'Collapse.wav';
Form1.mediaplayer1.Open;
Form1.mediaplayer1.Play;
if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
then
begin
Form1.mediaPlayer1.Rewind;
Form1.mediaPlayer1.Play;
end;
end;
1:
begin
Form1.mediaplayer1.FileName := 'horse.wav';
Form1.mediaplayer1.Open;
Form1.mediaplayer1.Play;
if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
then
begin
Form1.mediaPlayer1.Rewind;
Form1.mediaPlayer1.Play;
end;
end;
2:
begin
Form1.mediaplayer1.FileName := 'electro.wav';
Form1.mediaplayer1.Open;
Form1.mediaplayer1.Play;
if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
then
begin
Form1.mediaPlayer1.Rewind;
Form1.mediaPlayer1.Play;
end;
end;
3:
begin
Form1.mediaplayer1.FileName := 'Memories.wav';
Form1.mediaplayer1.Open;
Form1.mediaplayer1.Play;
if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
then
begin
Form1.mediaPlayer1.Rewind;
Form1.mediaPlayer1.Play;
end;
end;
4:
begin
Form1.mediaplayer1.FileName := 'Jackin.wav';
Form1.mediaplayer1.Open;
Form1.mediaplayer1.Play;
if Form1.mediaPlayer1.Position = Form1.mediaPlayer1.Length
then
begin
Form1.mediaPlayer1.Rewind;
Form1.mediaPlayer1.Play;
end;
end;
end;
case Radiogroup1.ItemIndex of
0:
begin
Showmessage ('Sie haben Leicht gewählt');
Form1.NeuesSpiel;
Form1.Zeit.Enabled := true; // Uhr anschalten
Form1.Zeit.Interval := 550; // Zeitintervall beträgt 700 Millisekunden
Form1.StatusBar1.Panels[1].Text := 'Runden : 30';
Runden := 30;
Form1.Leicht.Enabled := False; // deaktiviert Leicht, da geladen
Form1.Mittel.Enabled := True;
Form1.Schwer.Enabled := True;
Form1.StatusBar1.Panels[0].Text := 'Punkte : 0';
Punkte := 0;
if Runden = 0 then
begin
Level :=Level+1;
Runden :=(Level-1)*5+30;
Form1.Zeit.Interval := Form1.Zeit.Interval-5;
end;
begin
if anzahlGleichfarbigerbloecke > 1
then
begin
Form1.GleicheFarbenLoeschen;
end;
end
end;
1:
begin
Showmessage ('Sie haben Mittel gewählt');
Form1.NeuesSpiel;
Form1.Zeit.Enabled := true; // Uhr anschalten
Form1.Zeit.Interval := 450; // Zeitintervall beträgt 300 Millisekunden
Form1.Statusbar1.Panels[1].Text := 'Runden : 50';
Runden := 50;
Form1.Leicht.Enabled := True;
Form1.Mittel.Enabled := False; // deaktiviert Mittel, da geladen
Form1.Schwer.Enabled := True;
Form1.Statusbar1.Panels[0].Text := 'Punkte : 0';
Punkte := 0;
end;
2:
begin
Showmessage ('Sie haben Schwer gewählt');
Form1.NeuesSpiel;
Form1.Zeit.Enabled := true; // Uhr anschalten
Form1.Zeit.Interval := 300; // Zeitintervall beträgt 100 Millisekunden
Form1.Statusbar1.Panels[1].Text := 'Runden : 70';
Runden := 70;
Form1.Leicht.Enabled := True;
Form1.Mittel.Enabled := True;
Form1.Schwer.Enabled := False; // deaktiviert Schwer, da geladen
Form1.Statusbar1.Panels[0].Text := 'Punkte : 0';
Punkte := 0;
end;
end;
begin
if ComboBox1.ItemIndex = 0 then Showmessage ('Sie haben Collapse Music gewählt');
if ComboBox1.ItemIndex = 1 then Showmessage ('Sie haben Amazing Horse gewählt');
if ComboBox1.ItemIndex = 2 then Showmessage ('Sie haben Electro Gypsy gewählt');
if ComboBox1.ItemIndex = 3 then Showmessage ('Sie haben Memories gewählt');
if ComboBox1.ItemIndex = 4 then Showmessage ('Sie haben Swagger Jackin gewählt');
end;
if ComboBox1.ItemIndex = 0
then
begin
if MessageDlg('Wirklich Beginnen ?',mtInformation,[mbYes,mbNo],0)=6 // Frage gestellt bevor Start
then Form15.Close;
end
else
begin
Showmessage('Bitte wähle einen Spielmodus, einen Schwierigkeitsgrad und eine Musik !');// müssen drei Einstellungen gewählt sein
end;
end;
{=====================================================================}
procedure TForm15.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.ItemIndex = 0
then
begin
Form1.NeuesSpiel;
Form1.Spielmodus1.Enabled := False;
Form1.Schwierigkeitsgrad.Enabled := False;
Form1.Highscore1.Enabled := False;
if Form1.Zeit.Enabled = false // wenn Zeit nicht läuft dann
then
begin
Form1.Zeit.Enabled := true; // Programm starten/Zeit laufen lassen
end;
if Form1.Spielfeld.Enabled = false
then
begin
Form1.Spielfeld.Enabled := true;
end;
Form1.StatusBar1.Panels[0].Text := 'Punkte : 0';
Form1.StatusBar1.Panels[1].Text := 'Runden : 30';
Punkte := 0;
Runden := 30;
anzahlgleichfarbigerbloecke := 0;
Form1.Zeit.Enabled := true;
Form13.start := now;
Form1.Spielmodus1.Enabled := False;
Form1.Schwierigkeitsgrad.Enabled := False;
Form1.Highscore1.Enabled := False;
Form9.Close;
end
else
begin
Form1.NeuesSpiel;
Form1.Spielmodus1.Enabled := False;
Form1.Schwierigkeitsgrad.Enabled := False;
Form1.Highscore1.Enabled := False;
if Form1.Zeit.Enabled = false // wenn Zeit nicht läuft dann
then
begin
Form1.Zeit.Enabled := true; // Programm starten/Zeit laufen lassen
end;
if Form1.Spielfeld.Enabled = false
then
begin
Form1.Spielfeld.Enabled := true;
end;
Form1.StatusBar1.Panels[0].Text := 'Punkte : 0';
Form1.StatusBar1.Panels[1].Text := 'Runden : 50';
Punkte := 0;
Runden := 50;
anzahlgleichfarbigerbloecke := 0;
Form1.Zeit.Enabled := true;
Form13.start := now;
Form1.Spielmodus1.Enabled := False;
Form1.Schwierigkeitsgrad.Enabled := False;
Form1.Highscore1.Enabled := False;
Form9.Close;
end;
end;
{=====================================================================}
end.
das sind die Einstellungen --> funktionieren.
Vielleicht muss man beim Neues Spiel die Einstellungen speichern:
Delphi-Quellcode:
{=====================================================================}
procedure TForm1.FormActivate(Sender: TObject);
begin
if Form15.ShowModal
then ----> hier ist ein Fehler (then muss vom Typ boolean sein) steht als Fehler da
begin
Spielmodus1.Enabled := True;
Schwierigkeitsgrad.Enabled := True;
Highscore1.Enabled := True;
if Zeit.Enabled = true // wenn Zeit läuft dann
then
begin
Zeit.Enabled := false; // Programm stoppen/ Zeit anhalten
end;
if Spielfeld.Enabled = true // wenn Oberfläche bedienbar
then
begin
Spielfeld.Enabled := false; // Oberfläche deaktivieren
end;
end;
Spielfeld.DefaultColWidth := Zellengroesse;
Spielfeld.DefaultRowHeight := Zellengroesse;
Spielfeld.ClientWidth := Spielfeld.ColCount*(Zellengroesse+Spielfeld.GridLineWidth);
Spielfeld.ClientHeight := Spielfeld.RowCount*(Zellengroesse+Spielfeld.GridLineWidth);
Leiste.DefaultColWidth := Zellengroesse;
Leiste.DefaultRowHeight := Zellengroesse;
Leiste.ClientWidth := Leiste.ColCount*(Zellengroesse+Leiste.GridLineWidth);
Leiste.ClientHeight := Leiste.RowCount*(Zellengroesse+Leiste.GridLineWidth);
// Statusbar im Verhältnis 1:3 teilen
StatusBar1.Panels[0].Width := StatusBar1.Width div 2;
Form1.Width := Spielfeld.ClientWidth+12;
Form1.Height := Spielfeld.ClientHeight+80+Leiste.ClientHeight+30;
randomize;
NeuesSpiel;
Spielfeld.Enabled := false; // bei Start Stillstand
Zeit.Enabled := false; // Zeit anhalten sofort nach Start
Classic:= true;
end;
{=====================================================================}
{=====================================================================}
procedure TForm1.NeuesSpiel1Click(Sender: TObject);
begin
NeuesSpiel;
Statusbar1.Panels[0].Text := 'Punkte : 0';
Statusbar1.Panels[1].Text := 'Runden : 30';
// Statusbar1.Panels[2].Text := 'Level : 1';
// Level := 1;
Punkte := 0;
Runden := 30;
anzahlgleichfarbigerbloecke := 0;
Zeit.Enabled := true;
Form13.start := now;
Spielmodus1.Enabled := False;
Schwierigkeitsgrad.Enabled := False;
Highscore1.Enabled := False;
end;
{=====================================================================}
{=====================================================================}
procedure TForm1.NeuesSpiel;
var x,y,i : integer;
begin
for x := 0 to Spielfeld.ColCount-1 do
begin
i := random(4)+1; // zufällige Anordnung der Kästchen
for y := Spielfeld.RowCount-i to Spielfeld.RowCount-1 do
Spielfeld.Cells[x,y] := IntToStr(random(5)); // belegt alle Felder mit Farbe
for y := 0 to Spielfeld.RowCount-i-1 do
Spielfeld.Cells[x,y] := '-1'; // belegt alle leeren Felder mit schwarz
end;
for x := 0 to Leiste.ColCount-1 do
Leiste.Cells[x,0] := IntToStr(random(5)); // zufällige Belegung der Leiste
Zeit.Enabled := true; // Uhr anschalten
Zeit.Interval := 500;
Kaestchen := Spielfeld.ColCount;
LetzteZeile := false;
Spielfeld.Enabled := true;
end;
{=====================================================================}