PB in wikibooks -> ist folgendes korrekt?
Verfasst: 25.07.2012 00:33
huhu....
ich habe folgenden beitrag gelesen und kann nicht recht glauben was dort bezüglich des waitwindowevent und timeout geschrieben wurde.
könnt ihr mir da zustimmen oder habe ich wieder irgendwas falsch verstanden?! bzw. welchen vorteil hat der timeout ?
ich habe folgenden beitrag gelesen und kann nicht recht glauben was dort bezüglich des waitwindowevent und timeout geschrieben wurde.
könnt ihr mir da zustimmen oder habe ich wieder irgendwas falsch verstanden?! bzw. welchen vorteil hat der timeout ?
WindowEvent() / WaitWindowEvent()
Es gibt zwei Funktionen, mit welchen ein Ereignis abgefragt werden kann. Diese sind WindowEvent() und WaitWindowEvent(), wobei der einzige Unterschied darin besteht, das WaitWindowEvent() darauf wartet bis etwas geschieht und erst dann einen Wert ausgibt, während WindowEvent() bei jedem Aufruf entweder das Event, oder solange nichts passiert ist, den Wert '0' zurück gibt. WindowEvent() sollte vermieden werden, da das Programm auch wenn es nicht benutzt wird die CPU stark belastet. Die Funktion WaitWindowEvent() unterstütz den optionalen Parameter 'timeout' welcher zulässt das das Programm mit geringer CPU Auslastung Berechnungen durchführen kann.
; Listing 39: WindowEvent
OpenWindow(0,0,0,400,200,"Uhr",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TextGadget(0,0,100,400,20,"",#PB_Text_Center)
Repeat
Select WaitWindowEvent(20)
Case #PB_Event_CloseWindow
End
EndSelect
SetGadgetText(0,FormatDate("%hh:%ii:%ss",Date()))
ForEver
Der Timeout wurde hier auf 20 Millisekunden gesetzt, das heißt wenn das Programm 20ms gewartet hat gibt es wie WindowEvent() eine 0 zurück. Diese Variante hat gegenüber einer Kombination aus WindowEvent() und Delay(20) den Vorteil, das sollte vor Ablauf der 20ms etwas passieren, z.B. es wird ein Button gedrückt, kann das Programm sofort reagieren und muss nicht erst noch die 20ms abwarten bis es wieder etwas machen kann. FormatDate wird verwendet, um auf einfache Weise ein Datumswert in verständlicher Weise als String darzustellen.