Hilfe

WaitEvent

B+

Aufruf

id = WaitEvent ( [timeout] )

Parameter

timeout Zeit in Millisekunden, für die ein Programm maximal angehalten werden soll.
Standard ist -1 (=unbegrenzt)


Rückgabewert

liefert die ID des Events zurück (siehe Tabelle)


Beschreibung

Die Funktion WaitEvent wartet auf ein Event und liefert danach die Identität des Events zurück (Eventart). Mit dem Parameter "Timeout" kann man die maximale Zeit einstellen, die das Programm abwarten soll. Gebe -1 oder lass den Parameter weg, dann wartet das Programm unbegrenzt (oder bis ein Event eintritt). Sollte die Zeit ablaufen und kein Event eintreten, dann wird 0 zurückgeliefert. Nach einem Event können weitere Daten mit EventData, EventID, EventSource, EventX oder EventY ermittelt werden.

Achtung! Verwende niemals diese Funktion mehrfach in einer Schleife - dadurch können Events verständlicherweise verloren gehen.



Zusatzinformation

Hier ist eine Übersicht der Events in BlitzPlus:

BezeichnungIDDataSourceX/Y/Z
KeyDown$101Scancode--
KeyUp$102Scancode--
KeyStoke$103ASCII-Code--
MouseDown$201MaustasteGadget-Handle-
MouseUp$202MaustasteGadget-Handle-
MouseMove$203-Canvas-HandleMauskoordinaten
MouseWheel$204Drehung--
MouseEnter$205-Canvas-HandleMauskoordinaten
MouseLeave$206-Canvas-Handle-
GadgetAction$401EingabeGadget-Handle-
WindowMove$801-Window-HandleFensterkoordinaten
WindowSize$802-Window-HandleFenstergröße
WindowClose$803-Window-Handle-
WindowActivate$804-Window-Handle-
MenuEvent$1001Menunummer--
AppSuspend$2001---
AppResume$2002---
AppBeginModal$2004---
AppEndModal$2005---
TimerTick$4001TicksTimer-Handle-


Beispiel

Standardbeispiel:

;Dieses Beispiel fragt den letzten Event ab und ändert die Titelzeile des Fenster entsprechend. Das Programm kann nur mit dem Button "Ende" verlassen werden.

window = CreateWindow("Fenster", 20, 20, 640, 300, 0, 7)
canvas1 = CreateCanvas(0, 0, 30, 30, window)
canvas2 = CreateCanvas(0, 50, 30, 30, window)
button = CreateButton("Test", 50, 0, 30, 30, window)
esc = CreateButton("Ende", 50, 50, 30, 30, window)
CreateMenu("Test 1", 1, WindowMenu(window))
CreateMenu("Test 2", 2, WindowMenu(window))
UpdateWindowMenu window

Repeat
   Select WaitEvent(3000)
      Case $101
         SetGadgetText(window, "Die Taste mit Scancode " + EventData() + " wurde gedrückt.")
      Case $102
         SetGadgetText(window, "Die Taste mit Scancode " + EventData() + " wurde losgelassen.")
      Case $103
         SetGadgetText(window, "Die Taste mit Scancode " + EventData() + " ist gedrückt.")
      Case $201
         SetGadgetText(window, "Die Maustaste mit Code " + EventData() + " wurde auf der Canvasfläche " + EventSource() + " gedrückt.")
      Case $202
         SetGadgetText(window, "Die Maustaste mit Code " + EventData() + " wurde auf der Canvasfläche " + EventSource() + " losgelassen.")
      Case $203
         SetGadgetText(window, "Die Maus (" + EventX() + "," + EventY() + ") wurde über die Canvasfläche " + EventSource() + " bewegt.")
      Case $204
         SetGadgetText(window, "Das Mausrad wurde um " + EventData() + " 'clicks' bewegt.")
      Case $401
         If EventSource() = esc Then End
         SetGadgetText(window, "Das Gadget " + EventSource() + " wurde verändert.")
      Case $801
         SetGadgetText(window, "Das Fenster " + EventSource() + " wurde bewegt. (" + EventX() + "," + EventY() + ")")
      Case $802
         SetGadgetText(window, "Das Fenster " + EventSource() + " wurde in der Grösse verändert. (" + EventX() + "," + EventY() + ")")
      Case $803
         SetGadgetText(window, "Beim Fenster " + EventSource() + " wurde auf das Schliessen-Symbol geklickt.")
      Case $804
         SetGadgetText(window, "Das Fenster " + EventSource() + " wurde aktiviert.")
      Case $1001
         SetGadgetText(window, "Das Menü " + EventData() + " wurde gewählt.")
      Case $2001
         SetGadgetText(window, "Es wurde zu einer anderen Anwendung gewechselt.")
      Case $2002
         SetGadgetText(window, "Die Anwendung wurde wieder angewählt.")
      Case $4001
      Default
         SetGadgetText(window, "Nix passiert, das ich kennen würde.")
   End Select
Forever


Siehe auch

EventData, EventID, EventSource, EventX, EventY, EventZ, FlushEvents, HotKeyEvent, PeekEvent

Übersicht GUI Event