Seite 1 von 1

kleine frage

Verfasst: 04.06.2007 20:32
von yannickb
ich habe das programm noch nicht lange und kenne noch nicht so viele Codes und so.
Ich will gerne ein Frage-spiel in der Art von wer wird milionär machen.
es soll sich ein fenster öffnen in dem die frage und die antwortmöglichkeiten stehen und darunter sollen zwei buttons für die antwortmöglichkeiten stehen.
ich habe jetzt ein fenster, das meine wünschen entspricht mit dem visual-designer gemacht und nun weiß ich nicht wie ich es hinkriege, das wenn man den richtigen knopf drückt, das sich dann das nächste fenster öffnet?

Bitte helft mir

Verfasst: 04.06.2007 20:36
von ts-soft
Geh mal auf PureArea.net oder Robsite.de und arbeite in paar Tutorials
durch. Das erstellen eines Fenster mit dem Designer bringt zwar ein schnelles
Erfolgserlebnis, bringt Dich dem Programmieren aber nicht näher!

Solange Du nicht programmieren kannst, solltest Du die Finger vom Visual
Designer lassen.

Verfasst: 04.06.2007 20:38
von Kaeru Gaman
PB ist kein Click&Go baukasten.

schau mal in die Help zu WaitWindowEvent, dort findest du einen grundsätzlichen Eventloop demonstriert.

auf die events mit den buttons kannst du dann dementsprechend reagieren.

btw. würde ich dir eher empfehlen,
den text der frage in dem textgadget und die beschriftungen der buttongadgets zu ändern,
als extra ein neues fenster aufzumachen, auf dem du dann auch
wieder text und buttons an den selben stellen erstellen müßtest....

Verfasst: 05.06.2007 11:59
von PureBasic4.0
ich habe mich mal in diesem Thread mit verschiedenen Leuten um den besten Code gestritten. Ich denke, das hier kommt deinem Wunsch sehr nahe.

//edit: Willkommen im PureBoard :allright:

Verfasst: 05.06.2007 15:38
von Dark Skillu
PureBasic4.0 hat geschrieben:ich habe mich mal in diesem Thread mit verschiedenen Leuten um den besten Code gestritten. Ich denke, das hier kommt deinem Wunsch sehr nahe.

//edit: Willkommen im PureBoard :allright:
Das Thema war von mir 8)

Du kannst es einfach so machen wie in einer der dort gepostet Lösungen oder kannst mein Quiz benutzen , habe ich später selber gemacht , gibt sicher was einfacheres aber funktioniert. Die Abfrage welcher Button gedrückt wurde kannst aber auch mit Select machen.

Code: Alles auswählen

Procedure Falsch()
MessageRequester("Falsch","Diese Antwort war leider Falsch." +Chr(10)+ "Bitte versuchen sie es erneut.")
         Quit=1
EndProcedure

 

;Schriftarten
Global FontID1
FontID1 = LoadFont(1, "Comic Sans MS", 14)
Global FontID2
FontID2 = LoadFont(2, "Comic Sans MS", 11)
Global FontID3
FontID3 = LoadFont(3, "Comic Sans MS", 13, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(4, "Comic Sans MS", 10, #PB_Font_Bold)

  If OpenWindow(0, 394, 177, 351, 300, "Quiz",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar ) And CreateGadgetList(WindowID(0))
      TextGadget(1, 15, 15, 315, 45, "Was ist die Hauptstadt von Deutschland?", #PB_Text_Center)
      SetGadgetFont(1, FontID3)
      ButtonGadget(2, 45, 75, 255, 30, "Bonn")
      SetGadgetFont(2, FontID4)
      ButtonGadget(3, 45, 120, 255, 30, "München")
      SetGadgetFont(3, FontID4)
      ButtonGadget(4, 45, 165, 255, 30, "Berlin")
      SetGadgetFont(4, FontID4)
      ButtonGadget(5, 45, 210, 255, 30, "Hamburg")
      SetGadgetFont(5, FontID4)
      TextGadget(6, 60, 255, 210, 45, "Copyright by DarkSkillu (c) 2007", #PB_Text_Center)
      SetGadgetFont(6, FontID4)
      
  EndIf
  
 Repeat 
 EventID=WaitWindowEvent()
    If EventID=#PB_Event_CloseWindow
      Quit=1
    EndIf
   If EventID = #PB_Event_Gadget
     GadgetID= 1
       
       If EventGadget()=2
         Falsch()
       EndIf
       
       If EventGadget()=3
         Falsch()
       EndIf
       
       
      If EventGadget()=4
         MessageRequester("Richtig","Diese Antwort ist Richtig!")
         
         
         

            If OpenWindow(0, 394, 177, 351, 300, "Quiz",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar ) And CreateGadgetList(WindowID(0))
              TextGadget(7, 15, 15, 315, 45, "Was ist die Hauptstadt von England?", #PB_Text_Center)
              SetGadgetFont(7, FontID3)
              ButtonGadget(8, 45, 75, 255, 30, "London")
              SetGadgetFont(8, FontID4)
              ButtonGadget(9, 45, 120, 255, 30, "Manchester")
              SetGadgetFont(9, FontID4)
              ButtonGadget(10, 45, 165, 255, 30, "Liverpool")
              SetGadgetFont(10, FontID4)
              ButtonGadget(11, 45, 210, 255, 30, "Sheffield")
              SetGadgetFont(11, FontID4)
              TextGadget(12, 60, 255, 210, 45, "Copyright by DarkSkillu (c) 2007", #PB_Text_Center)
              SetGadgetFont(12, FontID4)  
            EndIf
         
            Repeat 
             EventID=WaitWindowEvent()
              If EventID=#PB_Event_CloseWindow
                Quit=1
              EndIf
                If EventID = #PB_Event_Gadget
                GadgetID= 1
       
                  If EventGadget()=8
                    MessageRequester("Richtig","Diese Antwort ist Richtig!." +Chr(10)+ "Mein Quiz ist leider hier schon zu Ende :( ")
                    Quit=1
                  EndIf
       
                  If EventGadget()=9
                    Falsch()
                  EndIf
                
                  If EventGadget()=10
                    Falsch()
                  EndIf
                
                  If EventGadget()=11
                    Falsch()
                  EndIf
           
                EndIf
              Until Quit=1
       
       EndIf
       
       If EventGadget()=5
         Falsch()
       EndIf
   EndIf 
 Until Quit=1


Verfasst: 05.06.2007 17:43
von PureBasic4.0
@DarkSkillu: Wow, jetzt weißt du wie man nen Event Loop macht. Wenn man sich erst mal durch die Anfänger sachen durchgelesen und -gearbeitet hat, ist PB gar nicht so schwer. Ich verachte immernoch die alten Anfänger Zeiten ;-)

Verfasst: 05.06.2007 19:26
von Dark Skillu
Joa habe schon was dazu gelernt :) Finde aber die Select Methode besser als immer mit IF-Abzufragen welcher Button gedrückt wurde ...

Code: Alles auswählen

Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()

Case 1 

EndSelect
EndSelect 
Habe eine Frage dazu:Case und die folgende Zahl ist die Gadgetnummer? Wie ist es wenn ich Konstanten benutze?

Code: Alles auswählen

#Button1 
Müsste der Code dann so aussehen?

Code: Alles auswählen

Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()

Case #Button1

EndSelect
EndSelect 
Habs noch nicht im Editor ausprobiert obs so funzt ... Habe bisher noch nie Konstanten bei Gadgets benutzt und die immer nur durch nummeriert .