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
...

Code: Alles auswählen

Repeat
Select =  WaitWindowEvent()
...

Re: WaitWindowEvent() Frage

Verfasst: 15.06.2014 10:08
von ts-soft
Der zweite Code sollte nicht funktionieren!

Aber ich denke, Du meinst:

Code: Alles auswählen

Select WaitWindowEvent()
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) :mrgreen:
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.