Seite 1 von 1
WaitWindowEvent() Frage
Verfasst: 15.06.2014 09:47
von Simon74
Was ist besser, was sollte verwendet werden ?
Überhaupt ein Unterschied ?
Code: Alles auswählen
Define Event
Repeat
Event = WaitWindowEvent()
Select Event
...
Re: WaitWindowEvent() Frage
Verfasst: 15.06.2014 10:08
von ts-soft
Der zweite Code sollte nicht funktionieren!
Aber ich denke, Du meinst:
ohne gleichheitszeichen.
Es gibt keinen signifikanten Unterschied. Die erste Variante erfordert lediglich eine Variable mehr.
Ich persönlich bevorzuge die zweite Variante, wenn ich die Variable nicht benötige, aber das ist
lediglich eine Geschmacksfrage.
Re: WaitWindowEvent() Frage
Verfasst: 15.06.2014 10:11
von Simon74
Ah ja, natürlich ohne Gleichheitszeichen.
OK, dann spar ich mir die Variable (die sind teuer)
Vielen Dank
Re: WaitWindowEvent() Frage
Verfasst: 15.06.2014 10:26
von ProgOldie
Ich arbeite seit einiger Zeit statt langer REPEAT...UNTIL events lieber mit
BindEvent(),BindGadgetEvent(),BindMenuEvent() Ein Beispiel dazu aus der Hilfe:
Code: Alles auswählen
Procedure SizeWindowHandler()
Debug "Size event on window #" + EventWindow()
EndProcedure
OpenWindow(0, 100, 100, 200, 200, "Resize test", #PB_Window_SizeGadget | #PB_Window_SystemMenu)
BindEvent(#PB_Event_SizeWindow, @SizeWindowHandler())
Der Vorteil solcher Konstruktionen: Man definiert einzeln, was genau bei welchem Ereignis geschehen soll. Das ist m.E. viel übersichtlicher also lange REPEAT..UNTIL Ereignishandler.
Re: WaitWindowEvent() Frage
Verfasst: 16.06.2014 18:13
von Chimorin
Ich persönlich benutze gar kein WaitWindowEvent() mehr, weil ich so nur ein Event bekomme und im Falle, dass es kein Event gibt, gewartet wird.
Ich schreibe das auch nur, weil mir der Codeschnipsel von Simon nach dem unten stehenden Konstrukt aussieht, aber mit WaitWindowEvent().
Code: Alles auswählen
Define.i event
Repeat
Repeat
event = WindowEvent()
Select event
Case
EndSelect
Until event = 0
ForEver
Re: WaitWindowEvent() Frage
Verfasst: 16.06.2014 18:28
von ts-soft
@Chimorin
Du solltest aber erwähnen, das es sich nicht um ein reine Fensteranwendung handelt, sondern
kombiniert mit irgendwelchen Screens! Da mag ein solches Konstrukt ja etwas bringen, aber im
allgemeinen ist das Konstrukt mit WaitWindowEvent() vorzuziehen.