kleine frage

Anfängerfragen zum Programmieren mit PureBasic.
yannickb
Beiträge: 1
Registriert: 04.06.2007 20:23

kleine frage

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag 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:
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag 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

Ich benutze PureBasic 4.0.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag 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 ;-)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag 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 .
Ich benutze PureBasic 4.0.
Antworten