Re: PB in wikibooks -> ist folgendes korrekt?
Verfasst: 25.07.2012 17:21
könnte mir dann noch jemand ein einfaches Bsp. geben indem es Sinn macht den timeout zu verwenden?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Text_0
#Button_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 220, 16, 600, 300, "Zwerge", #PB_Window_MinimizeGadget|#PB_Window_Invisible|#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowState(#Window_0,#PB_Window_Minimize)
TextGadget(#Text_0, 0, 20, 600, 40, "Hier steht was drin")
ButtonGadget(#Button_0, 40, 70, 150, 40, "Schicht, genug getragen")
EndIf
EndProcedure
c=2 ; wegen der Säcke
Open_Window_0()
SetWindowState(#Window_0,#PB_Window_Normal); mit windowinvisible s.o. und dem hier spart es mir so ca 1000 Kb in der Speicheranzeige des Taskmanagers
Repeat
Event = WaitWindowEvent(900)
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = #Button_0
quit+1
EndIf
EndIf
If ElapsedMilliseconds() > start+1000 ; Statt Timer , ich möchte nur
c+1 ; alle 1000 msec eine Änderung
HideWindow(#Window_0,0) ; da es mir sonst zu schnell zuviele Zwerge werden. An die Eier gar nicht zu denken :)
SetGadgetText(#Text_0,Str(c)+" Zwerge haben "+Str(c*2)+" Beine und tragen "+Str(c)+" Säcke mit " +Str(c*2)+" Eiern")
start=ElapsedMilliseconds()
EndIf
Until quit Or Event = #PB_Event_CloseWindow ; End of the event loop
End
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Text_0
#Button_0
#timer
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 220, 16, 600, 300, "Zwerge", #PB_Window_MinimizeGadget|#PB_Window_Invisible|#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowState(#Window_0,#PB_Window_Minimize)
TextGadget(#Text_0, 0, 20, 600, 40, "Hier steht was drin")
ButtonGadget(#Button_0, 40, 70, 150, 40, "Schicht, genug getragen")
AddWindowTimer(#Window_0,#timer,1000)
EndIf
EndProcedure
c=2 ; wegen der Säcke
Open_Window_0()
SetWindowState(#Window_0,#PB_Window_Normal); mit windowinvisible s.o. und dem hier spart es mir so ca 1000 Kb in der Speicheranzeige des Taskmanagers
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
EventTimer = EventTimer()
If Event = #PB_Event_Gadget
If GadgetID = #Button_0
quit+1
EndIf
EndIf
If event=#PB_Event_Timer
If EventTimer = #timer
c+1
SetGadgetText(#Text_0,Str(c)+" Zwerge haben "+Str(c*2)+" Beine und tragen "+Str(c)+" Säcke mit " +Str(c*2)+" Eiern")
EndIf
EndIf
Until quit Or Event = #PB_Event_CloseWindow ; End of the event loop
End