Gadget Object not initialized

Anfängerfragen zum Programmieren mit PureBasic.
OptimusPrime
Beiträge: 43
Registriert: 07.03.2005 16:52

Gadget Object not initialized

Beitrag von OptimusPrime »

Code: Alles auswählen

Declare Window_LogIn()
Declare Progress_LogIn()

Enumeration
  #Window_LogIn
EndEnumeration

Enumeration
  #Button_Login
  #Button_Close
  #Gadget1
  #Gadget2
  #Gadget3
  #Gadget4
  #Progressbar
  
EndEnumeration

Window_LogIn()

Procedure Window_LogIn()
If OpenWindow(#Window_LogIn, 0, 0, 300, 300, #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "huhu:)")
If CreateGadgetList(WindowID())
       ButtonGadget(#Button_LogIn, 10, 50, 60, 20, "Anmelden") 
       ButtonGadget(#Button_Close, 80, 50, 60, 20, "Beenden") 
       StringGadget(#Gadget1, 1, 1, 120, 18, "Name" ) 
        StringGadget(#Gadget2, 150, 5, 120, 18, "" )      
        StringGadget(#Gadget3, 1, 30, 120, 18, "Passwort" )
        StringGadget(#Gadget4, 150, 30, 120, 18, "" )
        ProgressBarGadget(#Progressbar,10, 200, 200, 30, 0,100,#PB_ProgressBar_Smooth)
EndIf
EndIf

Repeat
  Event = WaitWindowEvent()
  If Event = #PB_EventGadget And EventGadgetID() = #Button_LogIn
  CloseWindow(#Window_LogIn)
  
 Progress_LogIn()
  EndIf
  If Event = #PB_EventGadget And EventGadgetID() = #Button_Close
   CloseWindow(#Window_LogIn)
   End
   EndIf
 Until Event = #PB_EventCloseWindow
EndProcedure


Procedure Progress_LogIn()

SetGadgetState(#Progressbar,10)
SetGadgetState(#Progressbar,50)
EndProcedure

End
In der Procedure Progress_LogIn kommt der Fehler :
#Gadget Object not initialized

Kann ich aus einer Funktion nicht ohne weiteres auf das Gadget zugreifen ?

Leider finde ich nirgends eine Lösung, das problem ist, dass ich nicht einmal weiss, wonach ich suchen muss...

Danke :)
OptimusPrime
Beiträge: 43
Registriert: 07.03.2005 16:52

Beitrag von OptimusPrime »

Aua...
dummer Fehler von mir, nach zig Zigretten und leker käse-salami toasts bin ich drauf gekommen :

Code: Alles auswählen

If Event = #PB_EventGadget And EventGadgetID() = #Button_LogIn
 CloseWindow(#Window_LogIn)
 Progress_LogIn()
Ich habe das Fenster geschlossen und danach sollte der Progress-Bar Status
geändert werden...

Natürlich muss es umgekehrt sein.

:)
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 »

Code: Alles auswählen

CloseWindow(#Window_LogIn)
 
Progress_LogIn()
Nach dem Fenster-Schließen steht wohl keine Progressbar mehr zur Verfügung.

PS: Das Hauptprogramm vor Proceduren finde ich sehr unpraktisch.

//EDIT: Okay, hat sich erledigt
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
OptimusPrime
Beiträge: 43
Registriert: 07.03.2005 16:52

Beitrag von OptimusPrime »

Danke Dir trotzdem ^^

Ja, das mit dem Hauptprogramm am Anfang, das is ne alte Macke von mir, habe ich seit Amiga-Basic und wird sich wohl nicht mehr ändern :)
Antworten