Ereignisse - Events

Unsere "normalen" Funktionen und Aktionen werden immer in einer bestimmten Reihenfolge abgearbeitet. Was auch geschieht, sie werden immer von der ersten bis zur letzten Zeile abgearbeitet. Man könnte auch sagen, sie agieren aber reagieren nicht. Nun gibt es aber Ereignisse, auf die unser Programm sehr wohl mal reagieren sollte.

Auf welche Ereignisse nun unser Objekt nun reagieren kann, ist aus der Liste ersichtlich.

Der Programmaufbau sieht folgender Maßen aus:

  • In der Aktion, die dem Objekt zugewiesen ist, werden die Flags gesetzt, auf die das Objekt reagieren soll.
  • Im Anschluss wird der objekteigenen Variable "event" die Funktion zugewiesen, die im Ereignissfall aufgerufen werden soll.
  • Wenn das Objekt auf mehrere unterschiedliche Ereignisse reagieren soll, muss in der Event-Funktion abgefragt werden, welches Ereigniss nun letztendlich zum Aufruf der Funktion geführt hat. Hierzu wird die Variable "EVENT_TYPE" mit dem Event-Namen verglichen.
  • Im Programm sollte das Ganze in etwa so aussehen:

    Function Objekt_event
    {
    	if (EVENT_TYPE == event_scan) // ist das Ereigniss = scan, dann
          		{ // führe diesen Programmblock aus }
    }
    
    Action Objekt
    {
    	my.enable_scan = on; // auf SCAN_ENTITY reagieren
    	my.event = Objekt_event;
    }
    

    Auffällig ist, dass zuerst die Funktion beschrieben wird und im Anschluß die Aktion. Dies hat einen simplen Grund: Erst nach der Definition der Funktion ist diese bekannt und kann somit erst im Anschluß dem "my.event" zugewiesen werden.