AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Groupboxen, Comboboxen

Ein Thema von Swagger Jackin · begonnen am 27. Feb 2010 · letzter Beitrag vom 28. Feb 2010
Antwort Antwort
Seite 1 von 3  1 23      
Swagger Jackin
(Gast)

n/a Beiträge
 
#1

Groupboxen, Comboboxen

  Alt 27. Feb 2010, 16:53
Ich hab auf einer Form zwei Groupboxen, bei der einen 3 und bei der anderen 5 Checkboxen drauf. Dazu kommt eine Combobox wo ich zwei Spielmodi aussuchen kann. Die Form startet vor dem eigentlichen Spiel. Der Spieler sucht sich die Musik, den Schwierigkeitsgrad und den Spielmodi aus. Meine Frage: Ich wollte eine if then else abfrage machen. Wenn der Spieler auf den Starten Button drückt, muss er jeweils immer eine Checkbox in beiden Groupboxen angeklickt haben, einen Spielmodi bei der Checkbox gewählt haben, er muss drei Einstellungen gewählt haben, dann startet das Spiel, sonst soll es noch mal Showmessage zeigen. Wie kann ich das schreiben ?
Das Problem steht nach der WICHTIG!!!!!!!!!!!!!!!!!!.

Delphi-Quellcode:
{=============================================================================================================================}
procedure TForm15.Button1.Click;
begin
  begin
    if Checkbox1.Checked then Showmessage ('Sie haben Leicht gewählt');
    if Checkbox2.Checked then Showmessage ('Sie haben Mittel gewählt');
    if Checkbox3.Checked then Showmessage ('Sie haben Schwer gewählt');
    if Checkbox4.Checked then Showmessage ('Sie haben Music1 gewählt');
    if Checkbox5.Checked then Showmessage ('Sie haben Music2 gewählt');
    if Checkbox6.Checked then Showmessage ('Sie haben Music3 gewählt');
    if Checkbox7.Checked then Showmessage ('Sie haben Music4 gewählt');
    if Checkbox8.Checked then Showmessage ('Sie haben Music5 gewählt');
    if ComboBox1.ItemIndex = 0 then Showmessage ('Sie haben Klassik gewählt');
    if ComboBox1.ItemIndex = 1 then Showmessage ('Sie haben Spezial gewählt');
  end;
WICHTIG!!!!!!!!!!!
if // hier brauch ich Hilfe --> wenn eine Checkbox geklickt bei Groupbox 1 und 2 sowie einen Spielmodi bei Combobox gewählt dann
then
  begin
    if MessageDlg('Wirklich Beenden ?', mtInformation,[mbYes,mbNo],0)=6; // Frage gestellt bevor Start
    then Form15.Close
  end;
else // wenn es nicht erfüllt ist
  begin
    Showmessage('Bitte wähle einen Spielmodus, einen Schwierigkeitsgrad und eine Musik');
    // keine drei Einstellungen gewählt deswegen Showmessage
  end;
end;
{=============================================================================================================================}
end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Groupboxen, Comboboxen

  Alt 27. Feb 2010, 17:00
IMHO hast Du für die Auswahl die falschen Komponenten gewählt. Was geschieht denn, wenn der Nutzer Musik1 und Musik2 angehakt hat? Ich würde an Deiner Stelle auf RadioGroups oder weitere ComboBoxen ausweichen, da kannst Du einen Standard definieren und es gibt garantiert auch nur eine einzige Auswahlmöglichkeit.

[edit] *Ääätsch*, schneller [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Groupboxen, Comboboxen

  Alt 27. Feb 2010, 17:01
Hallo,

warum nimmst Du keine RadioGroup und prüfst einfach auf...

Delphi-Quellcode:
  case RadioGruop.ItemIndex of
    0:...
    1:...
Hat auch den Vorteil, das immer ein Modus aktiv ist. Es wäre gar nicht möglich keine Auswahl getroffen zu haben.
(Es sei denn es muss umbedingt so sein, dann...RadioGroup.ItemIndex := -1; Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Swagger Jackin
(Gast)

n/a Beiträge
 
#4

Re: Groupboxen, Comboboxen

  Alt 27. Feb 2010, 19:31
Zitat von Jens Hartmann:
Hallo,

warum nimmst Du keine RadioGroup und prüfst einfach auf...

Delphi-Quellcode:
  case RadioGruop.ItemIndex of
    0:...
    1:...
Hat auch den Vorteil, das immer ein Modus aktiv ist. Es wäre gar nicht möglich keine Auswahl getroffen zu haben.
(Es sei denn es muss umbedingt so sein, dann...RadioGroup.ItemIndex := -1; Gruß Jens
werd ich gleich mal probieren, Vielen Dank!!!!!
  Mit Zitat antworten Zitat
Swagger Jackin
(Gast)

n/a Beiträge
 
#5

Re: Groupboxen, Comboboxen

  Alt 27. Feb 2010, 19:54
Zitat von Swagger Jackin:
Zitat von Jens Hartmann:
Hallo,

warum nimmst Du keine RadioGroup und prüfst einfach auf...

Delphi-Quellcode:
  case RadioGruop.ItemIndex of
    0:...
    1:...
Hat auch den Vorteil, das immer ein Modus aktiv ist. Es wäre gar nicht möglich keine Auswahl getroffen zu haben.
(Es sei denn es muss umbedingt so sein, dann...RadioGroup.ItemIndex := -1; Gruß Jens
werd ich gleich mal probieren, Vielen Dank!!!!!
Leider will es nicht auf der richtigen Form starten, wird alles geladen.
  Mit Zitat antworten Zitat
Swagger Jackin
(Gast)

n/a Beiträge
 
#6

Re: Groupboxen, Comboboxen

  Alt 27. Feb 2010, 20:55
Also da ist ein Fehler. Ich find ihn nicht. Die exe geht gerade so, aber nicht der Rest. procedure Leiste zeigt Fehler !

Delphi-Quellcode:
{=====================================================================}
procedure TForm1.LeisteDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if Leiste.Cells[ACol,Arow] <> '-1' --> Fehler wird hier angezeigt !!!!!!!!!!!!!!!!!!!!!!
  then
    case Leiste.Cells[ACol,ARow][1] of
      '0' : Leiste.Canvas.Brush.Color := clRed;
      '1' : Leiste.Canvas.Brush.Color := clBlue;
      '2' : Leiste.Canvas.Brush.Color := clYellow;
      '3' : Leiste.Canvas.Brush.Color := clGreen;
      '4' : Leiste.Canvas.Brush.Color := clWhite;
      else Leiste.Canvas.Brush.Color := clBlack; // Farbe für "gelöscht"
      end; // endcase
  Leiste.Canvas.Pen.Color := clBlack;
  Leiste.Canvas.Rectangle(Rect);
end;
{=====================================================================}

Das was ihr mir vorgeschlagen habt:


{=====================================================================}
procedure TForm15.Button1Click(Sender: TObject);
begin
{  case ComboBox1.ItemIndex of                    ---------------> Combobox, wo die Musik gewählt wird     
      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                  --> hier wird Schwierigkeitsgrad gewählt wird
  0:
    begin
      Showmessage ('Sie haben Leicht gewählt');
      Form1.NeuesSpiel;
      Form1.Zeit.Enabled := true;  // Uhr anschalten
      Form1.Zeit.Interval := 500;  // 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 := 350;  // 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 := 200;  // 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.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.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 hab ich geschafft, aber es will nicht irgendwo bei case liegt der Fehler.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Groupboxen, Comboboxen

  Alt 28. Feb 2010, 09:28
Hast Du die Radiogroups erstellt und dann aus dem OI Radiobuttons eingefügt? Dann kannst Du den ItemIndex nicht abfragen, Du musst die Radiobuttons über die Items-Eigenschaft der Radiogroup hinzufügen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Swagger Jackin
(Gast)

n/a Beiträge
 
#8

Re: Groupboxen, Comboboxen

  Alt 28. Feb 2010, 09:42
Ich hab die Radiogroup erst erstellt, dann einzeln von oben die Radiobuttons draufgesetzt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Groupboxen, Comboboxen

  Alt 28. Feb 2010, 09:44
Du musst nicht denken, dass Du der erste bist, der das so gemacht hat und sich dann wundert
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Swagger Jackin
(Gast)

n/a Beiträge
 
#10

Re: Groupboxen, Comboboxen

  Alt 28. Feb 2010, 10:02
Zitat von DeddyH:
Du musst nicht denken, dass Du der erste bist, der das so gemacht hat und sich dann wundert


Weist wo der Fehler liegt?

Leider die Radiobuttons sind nicht der Fehler. Die Leiste (das Spielfeld) zeigt bei case of einen Fehler.
Kann es sein das sich der case of Teil von der Leiste mit dem case of Teil von der Radiogroup und der Combobox überschneiden.
siehe Delphi Quelltext oben ?????
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
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