is-Logo Objektorientierte Programmierung
Ereignisse

S. Spolwig

[Home | OOP]

Was sind Ereignisse?

 

zeigefinger.gif (1077 Byte)

Ein Ereignis ist ein Mechanismus, der einen Vorgang  mit einem Programmquelltext verknüpft. Genauer gesagt handelt es sich bei einem Ereignis um einen Methodenzeiger, der auf eine Methode eines bestimmten Objektes (Exemplar) zeigt.

Ereignisse gehören im strengen Sinne nicht zum Konzept von OOP. Jedoch lassen sich beide Konzepte nutzbringend zusammenfügen, weil Objekte auf Botschaften reagieren. Aus der Sicht eines Objektes ist der Aufruf einer seiner Methoden als Botschaft ebenso ein Ereignis wie die Botschaft, daß gerade ein Mausklick stattgefunden hat, auf den es reagieren soll.

In der ereignisgesteuerten Programmierung bilden die vom Benutzer ausgelösten Ereignisse (z.B. Maustaste drücken oder loslassen, eine Zeichentaste drücken) einen zentralen Bestandteil der Anwendungslogik. Benutzer-Ereignisse stehen immer mit den Elementen einer grafischen Benutzeroberfläche (GUI) in Zusammenhang. Beispielsweise besitzen die meisten Komponenten ein Ereignis namens OnClick, das programmintern zur Reaktion auf einen Mausklick verwendet werden kann, den der Benutzer ausführt.

  event

Per Voreinstellung generiert z. B. Delphi eine Ereignisbehandlungsroutine (Methode) namens Button1Click in dem Formular, das die Schaltfläche enthält, und weist diese Routine dem Ereignis OnClick zu. Sobald ein Click-Ereignis auf der Schaltfläche eintritt, ruft die Schaltfläche die Methode auf, die OnClick zugewiesen wurde. Im vorliegenden Fall ist dies Button1Click.

Andere Ereignisse wiederum werden nicht direkt vom Benutzer ausgelöst, sondern vom Programmquelltext (z. B. das Ereignis OnActivate eines Formulars). Die Methoden, mit denen programmintern die Reaktion auf Ereignisse implementiert werden, werden als Ereignisbehandlungsroutinen bezeichnet, die also spezielle Methoden von interaktiven Bildschirmkomponenten sind (vgl. Delphi - Hilfe).

 Programmsteuerung

Der Ablauf eines ereignisgesteuerten Systems wird dadurch organisiert, daß das Laufzeitsystem permanent Ereignisse registriert sobald sie auftreten und sie dann zur Verarbeitung weiterleitet.
Stark vereinfacht enthält das System eine Steuerschleife (Main Event Loop), die bis zur Beendigung der Applikation die Ereignisse kontrolliert.

Repeat
...
   GetEvent(E)    // nächstes Ereignis holen
   HandleEvent(E) // und zur Bearbeitung weitersenden
Until EndState <> continue; 



©    05. Oktober 2008    Siegfried Spolwig

page_top.gif (150 Byte)