Thema: Delphi Groupboxen, Comboboxen

Einzelnen Beitrag anzeigen

Swagger Jackin
(Gast)

n/a Beiträge
 
#20

Re: Groupboxen, Comboboxen

  Alt 28. Feb 2010, 16:16
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;
{=====================================================================}
  Mit Zitat antworten Zitat