Events
Was ist ein Event?
Ein Event ist ein Ereignis, das während dem Programmablauf eintritt.
Dies kann z.B. sein:
- Das Drücken eines Buttons
- Ein erfolgreicher Verbindungsaufbau
- Eine eingehende Email
- Das Beenden der Anwendung
Wenn ein solches Event eintritt, soll ggf. eine bestimmte Aktion durchgeführt werden. Wird z.B. vom Benutzer ein "Button" gedrückt, so
Manche Objekte besitzen verschiedene "Events".
Zur Ereignis-Verarbeitung besitzt JayMo ein integriertes Event-System.
Die Verwendung eines Events lässt sich in 3 Bereiche aufteilen:
- Event-Definition
- Event-Handler (was soll ggf. gemacht werden?)
- Auslösen des Events
Bezeichner
Jedes Event benötigt einen Bezeichner, also einen Titel, über den es aufgerufen werden kann. Der Bezeichner beginnt mit einem "@", gefolgt von einem Kleinbuchstaben und ggf. weiteren Klein- und Großbuchstaben.
@abcDef
Definition
Jede Definition in JayMo wird mit einem doppelten Doppelpunkt eingeleitet, ebenso hier:
::@abcDef
Hiermit wird das neue Event angelegt und ist nun nutzbar. Dies ist ebenso im Root-Typ möglich.
Event-Handler
Was soll nun geschehen, wenn dieses Event ausgelöst wird?
Hierzu wollen wird ein Event-Handler benötigt. Da Event-Handler für eine individuelle Objekt-Instanz definiert werden, dient diese als Basis-Objekt:
this::@abcDef
Print "Event has started!"
Aufruf
Ein Event kann nur innerhalb eines Typs ausgelöst werden. Hierzu wird es wie eine Funktion aufgerufen:
this.@abcDef
Dies führt dazu, dass alle definierten Event-Handler ausgeführt werden.
Vollständiges Beispiel
::@abcDef
this::@abcDef
Print "Start 1"
this::@abcDef
Print "Start 2"
this.@abcDef