Menü erstellung

Anfängerfragen zum Programmieren mit PureBasic.
fen
Beiträge: 8
Registriert: 25.03.2009 15:48

Beitrag von fen »

Da ist ein Fehler beim ausführen "There is no current GadgetList" ZEILE 17.

Verstehe auch nicht woran das liegt...

Glaube das muss oben nach OpenWindow() stehen.

Code: Alles auswählen

InitSprite() 
InitSound() 

If OpenWindow(0,0,0,640,480,"Metronom",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered) 
  
  If OpenWindowedScreen(WindowID(0),0,0,480,480,0,160,0) = 0 
      TextGadget(0,490,13,80,20,"Intervall in ms") 
   SpinGadget(1,570,10,60,20,25,10000) : SetGadgetState(1,Wechsel) : SetGadgetText(1,Str(Wechsel)) 
  TextGadget(2,490,43,80,20,"Lautstärke") 
   TrackBarGadget(3,560,40,80,20,0,100) : SetGadgetState(3,100) 
  ButtonGadget(4,490,70,140,20,"Sound ändern") 
  
  ButtonGadget(5,490,100,65,20,"Hintergrund") 
  ButtonGadget(6,565,100,65,20,"Fordergrund") 
  
  ComboBoxGadget(7,490,130,140,20) 
    AddGadgetItem(7,0,"Zeiger-Metronom") : SetGadgetState(7,0) 
    AddGadgetItem(7,1,"Punkt-Metronom") 
    AddGadgetItem(7,2,"Ball-Metronom") 
;Fehler 
    End 
  EndIf 
  
  
  
  Wechsel = 1000 ;Alle 1000ms (1 sek) ein Takt 
  BackColor = $FFFFFF 
  FrontColor = $00FF00 
  Type = 0 
  
  
  
  If LoadSound(0,"C:\Programme\PureBasic\pong.wav") 
    Sound = 1 
  Else 
    Sound = -1 
  EndIf 
  
  Metronomx = ElapsedMilliseconds() 
  
  Repeat 
  
    ClearScreen(BackColor) 
  
    StartDrawing(ScreenOutput()) 
      FrontColor(FrontColor) 
      
      Select Type 
        Case 0 
          If Metrox = 1 
            LineXY(240,470,(ElapsedMilliseconds()-Metronomx)*460/Wechsel+10,10) 
          Else 
            LineXY(240,470,(Metronomx-ElapsedMilliseconds())*460/Wechsel+470,10) 
          EndIf 
        Case 1 
          If Metrox = 1 
            Circle(80,120,40+(Metronomx-ElapsedMilliseconds())*39/Wechsel) 
          Else 
            Circle(400,120,40+(Metronomx-ElapsedMilliseconds())*39/Wechsel) 
          EndIf 
        Case 2 
          If Metrox = 1 
            Circle(240+Cos((ElapsedMilliseconds()-Metronomx)*#PI/Wechsel+#PI)*200,240+Sin((ElapsedMilliseconds()-Metronomx)*#PI/Wechsel+#PI)*200,25) 
          Else 
            Circle(240+Cos((Metronomx-ElapsedMilliseconds())*#PI/Wechsel)*200,240+Sin((Metronomx-ElapsedMilliseconds())*#PI/Wechsel)*200,25) 
          EndIf 
      EndSelect 
    StopDrawing() 
  
    FlipBuffers() 
  
    If ElapsedMilliseconds()-Metronomx >= Wechsel 
      If Metrox = 1 
        Metrox = 0 
        If Sound = 1 
          SoundPan(0,100) 
        EndIf 
      Else 
        Metrox = 1 
        If Sound = 1 
          SoundPan(0,-100) 
        EndIf 
      EndIf 
    
      Metronomx = ElapsedMilliseconds() 
      If Sound = 1 
        PlaySound(0) 
      EndIf 
    EndIf 
    
    event = WindowEvent() 
    Select event 
      Case #PB_Event_CloseWindow 
        End 
      Case #PB_Event_Gadget 
        Select EventGadget() 
          Case 1 
            SetGadgetText(1,Str(GetGadgetState(1))+" ms") 
            Wechsel = GetGadgetState(1) 
          Case 3 
            If Sound <> -1 
              If GetGadgetState(3) = 0 
                Sound = 0 
              Else 
                Sound = 1 
                SoundVolume(0,GetGadgetState(3)) 
              EndIf 
            EndIf 
          Case 4 
            path$ = OpenFileRequester("Sound auswählen!","","WAV-Dateien|*.wav",0) 
            If path$ 
              If Sound = -1 
                If LoadSound(0,path$) 
                  Sound = 1 
                EndIf 
              Else 
                StopSound(0) 
                FreeSound(0) 
                If LoadSound(0,path$) = 0 
                  Sound = -1 
                EndIf 
              EndIf 
            EndIf 
          Case 5 
            buff = ColorRequester() 
            If buff > -1 
              BackColor = buff 
            EndIf 
          Case 6 
            buff = ColorRequester() 
            If buff > -1 
              FrontColor = buff 
            EndIf 
          Case 7 
            Type = GetGadgetState(7) 
        EndSelect 
    EndSelect 
  ForEver 
EndIf

Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Oha, mit welcher PureBasic-Version arbeitest du?
(\/) (°,,,°) (\/)
fen
Beiträge: 8
Registriert: 25.03.2009 15:48

Beitrag von fen »

Mit PB V 4.20
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Da musst du ein CreateGadgetList(WindowID(0)) unter dem Open-Window einfügen...
(\/) (°,,,°) (\/)
fen
Beiträge: 8
Registriert: 25.03.2009 15:48

Beitrag von fen »

Tausend dank!!!

Das ist ja Perfekt so wie ich es mir vorgestellt habe.

Und das hast du in einer halben stunde hingekriegt! Ich habe an meinem mikrigem Programm fast ganze 3 Tage gesessen^^

Also nochmal Danke, hab ich echt nicht erwartet.

mfg
fen
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Naja, ich hoffe du gewöhnst dich nich dran, mit ein bisschen Erfahrung, is das ja kein unding, und es is in gewisser weise Relaxend schnell was kleines zu machen...
Am besten is du analysierst und entwickelst das ganze noch weiter, dabei lernt man am Anfang am meisten...
Und steig am besten auf 4.30 um ;-)
(\/) (°,,,°) (\/)
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

fen hat geschrieben:Mit PB V 4.20
Solange du nicht die neueste Version häst, wäre ein Hinweis in deiner Signatur
empfehlenswert. :wink:
Win11 x64 | PB 6.20
Antworten