WaitWindowEvent() Frage

Anfängerfragen zum Programmieren mit PureBasic.
Simon74
Beiträge: 60
Registriert: 04.05.2014 10:05

WaitWindowEvent() Frage

Beitrag 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()
...
Benutzeravatar
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: WaitWindowEvent() Frage

Beitrag 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.
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.
Bild
Simon74
Beiträge: 60
Registriert: 04.05.2014 10:05

Re: WaitWindowEvent() Frage

Beitrag von Simon74 »

Ah ja, natürlich ohne Gleichheitszeichen.
OK, dann spar ich mir die Variable (die sind teuer) :mrgreen:
Vielen Dank
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: WaitWindowEvent() Frage

Beitrag 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.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: WaitWindowEvent() Frage

Beitrag 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
Bild

- formerly known as Bananenfreak -
Benutzeravatar
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: WaitWindowEvent() Frage

Beitrag 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.
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.
Bild
Antworten