PB in wikibooks -> ist folgendes korrekt?
- Pr0fessor
- Beiträge: 40
- Registriert: 21.07.2011 16:13
- Computerausstattung: Intel Qore2Quad Q6600, 4GB RAM, Radeon HD 5770, Windows 8.1 Pro 64bit
- Wohnort: Hagenow
- Kontaktdaten:
Re: PB in wikibooks -> ist folgendes korrekt?
könnte mir dann noch jemand ein einfaches Bsp. geben indem es Sinn macht den timeout zu verwenden?
~ PureBasic 5.21 LTS x86 | PureBasic 5.21 LTS x64 | Windows 8.1 Pro with Media Center x64 ~
- 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
Re: PB in wikibooks -> ist folgendes korrekt?
Man sollte besser einen Timer nehmen, in diesem Sinne macht dann ein Timeout auch nicht so viel Sinn,
aber wenn man z.B. unter Linux Threads verwendet, funktionieren diese nur, wenn ein Timeout vorgegeben ist.
Also: Unter Windows kannst Du statt eines Timeout besser einen Timer verwenden.
In diesem Sinne gibt es kein sinnvolles Beispiel. Es ist nur eine zusätzliche Möglichkeit, die wichtig war, bevor es die Timer in PB gab,
und die besser ist, als eine Schleife mit EventWindow() und Delay()
Gruß
Thomas
aber wenn man z.B. unter Linux Threads verwendet, funktionieren diese nur, wenn ein Timeout vorgegeben ist.
Also: Unter Windows kannst Du statt eines Timeout besser einen Timer verwenden.
In diesem Sinne gibt es kein sinnvolles Beispiel. Es ist nur eine zusätzliche Möglichkeit, die wichtig war, bevor es die Timer in PB gab,
und die besser ist, als eine Schleife mit EventWindow() und Delay()
Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: PB in wikibooks -> ist folgendes korrekt?
trotzdem ein eher sinnloses Beispiel zur prinzipiellen Demonstration
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
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- Pr0fessor
- Beiträge: 40
- Registriert: 21.07.2011 16:13
- Computerausstattung: Intel Qore2Quad Q6600, 4GB RAM, Radeon HD 5770, Windows 8.1 Pro 64bit
- Wohnort: Hagenow
- Kontaktdaten:
Re: PB in wikibooks -> ist folgendes korrekt?
ahh - dankesehr.
Es soll auch so sein dass die Zwerge mal schneller mal langsamer mehr werden?
denn es werden ja noch mehr events ausgelöst also die "0" vom timeout...
Es soll auch so sein dass die Zwerge mal schneller mal langsamer mehr werden?
denn es werden ja noch mehr events ausgelöst also die "0" vom timeout...
~ PureBasic 5.21 LTS x86 | PureBasic 5.21 LTS x64 | Windows 8.1 Pro with Media Center x64 ~
Re: PB in wikibooks -> ist folgendes korrekt?
Damit es nicht zu schnell zuviele Zwerge werden
habe ich ja den PseudoTimer eingebaut.
Mach den Mal raus und rutsch mit der Maus über das Fenster.
Dann werden es ganz schnell ganz viele Zwerge mit ganz vielen Säcken
und doppelt soviel Beinenund Eiern
Das der Pseudotimer prinzipiell etwas ungenau ist liegt an meinem Unvermögen
den Pseudo Timer richtig zu programmieren. Ist aber auch gar nicht nötig, PB
hat ja einen anständigen WindowTimer eingebaut den man für sowas benutzen sollte.
Und das sähe dann so aus
habe ich ja den PseudoTimer eingebaut.
Mach den Mal raus und rutsch mit der Maus über das Fenster.
Dann werden es ganz schnell ganz viele Zwerge mit ganz vielen Säcken
und doppelt soviel Beinenund Eiern
Das der Pseudotimer prinzipiell etwas ungenau ist liegt an meinem Unvermögen
den Pseudo Timer richtig zu programmieren. Ist aber auch gar nicht nötig, PB
hat ja einen anständigen WindowTimer eingebaut den man für sowas benutzen sollte.
Und das sähe dann so aus
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
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
- Pr0fessor
- Beiträge: 40
- Registriert: 21.07.2011 16:13
- Computerausstattung: Intel Qore2Quad Q6600, 4GB RAM, Radeon HD 5770, Windows 8.1 Pro 64bit
- Wohnort: Hagenow
- Kontaktdaten:
Re: PB in wikibooks -> ist folgendes korrekt?
Dankesehr - jetzt ist alles klar^^


~ PureBasic 5.21 LTS x86 | PureBasic 5.21 LTS x64 | Windows 8.1 Pro with Media Center x64 ~