gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Ereignismuster Nach oben: Jenseits statischer Repräsentationen mittels Ereignisdaten Vorheriges: Erhöhte Dynamik

Anbindung von Ereignissen

Die Möglichkeiten zum Einsatz von Ereignissen mit Tcl/Tk sind sehr vielseitig und flexibel [RT1999] [Har1997] [HM1998]. Aus diesem Grund läßt sich hier nur ein kleiner Überblick vermitteln.

Die Anbindung  von Ereignissen an Objekte  auf dem Canvas  funktioniert ähnlich der Anbindung von Ereignissen an Elemente (engl.:  ,,widgets``) mit dem Tk-Befehl bind. 

An Objekte des Canvas  können nur Ereignisse angebunden werden, die Maus oder Tastatur zugeordnet sind sowie virtuelle Ereignisse (engl.:  ,,virtual events``). 

Besondere Standardattribute (engl.:  ,,tag``, Attribut) sind current  und all.  Bestimmte Ereignisse, z.B. das Betreten und Verlassen eines Objektes, werden dadurch gesteuert, daß ein Objekt das aktuelle (current) Objekt wird. Ereignisse, die der Maus zugeordnet sind, werden auf dieses Objekt bezogen. Ereignisse, die der Tastatur zugeordnet sind, werden auf das Objekt bezogen, das den Tastaturfokus (focus)  hat, der z.B. mit der focus-Methode gesetzt werden kann. Wird all verwendet, bezieht sich die spezielle Bindung  auf alle erreichbaren Objekte, z.B. im Fenster mit einem angegebenen Pfadnamen.

Ein virtuelles Ereignis kann nur durch ein reales Ereignis (Maus, Tastatur) ausgelöst werden, das hinter dem virtuellen Ereignis verborgen ist.

Treffen mehrere Bindungen  auf ein bestimmtes Ereignis zu, so werden alle Bindungen ausgelöst. Die Reihenfolge der Auslösung  von Ereignissen  ist folgendermaßen.

Ein Ereignis, das an das Attribut all gebunden ist, wird als erstes ausgelöst. Danach werden Ereignisse ausgelöst, die an je ein beliebiges Attribut gebunden sind und anschließend Ereignisse, die sich auf die Identitätsnummer eines Objektes  ( ID ) beziehen.

Sind mehrere Bindungen für ein bestimmtes Attribut vorhanden, dann wird das Ereignis ausgelöst, das hinter der Bindung steht, die am wenigsten allgemein ist. Mit dem Befehl break  werden Sequenzen von Befehlen abgebrochen, die über Bindungen  zugewiesen sind. Alle Bindungen an das Canvas Element  (engl.:  ,,canvas widget``) mit dem Befehl bind  werden nach möglichen passenden Bindungen an Objekte  ausgelöst.

Eine detailierte Übersicht der wichtigsten grundlegenden Funktionen ist in allen Basiswerken zu Tcl/Tk vorhanden ([RT1999] S. 57-70).

Als konkretes Beispiel für die Handhabung von Symbolismus und Ereignissen soll hier die Manipulation einer Eigenschaft eines Elementes des Canvas  über ein Attribut gegeben werden (Abbildung 8.1):

nameofcanvas itemconfigure \
  tag -option value \
  [-option value ...]

  
Abbildung 8.1: Quellentextbeispiel: Eigenschaften eines Elementes des Canvas über Attribute

Desweiteren ist die Anbindung  von Ereignissen  an solche Elemente (Abbildung 8.2) von besonderer Bedeutung. Auf diese Weise können z.B. Kommandos an Elemente mit bestimmtem Attribut gebunden werden.

nameofcanvas bind \
  tag <action> {
        Tcl Skript
      }

  
Abbildung 8.2: Quellentextbeispiel: Anbindung von Ereignissen an Attribute

Es können aber auch Aktionen an beliebige Lokationen auf einem Canvas  gebunden werden (Abbildung 8.3).

bind nameofcanvas \
  <action> {
    Tcl Skript
  }

  
Abbildung 8.3: Quellentextbeispiel: Anbindung von Ereignissen an beliebige Lokationen

Für nameofcanvas, tag, <action> und Tcl Skript müssen in diesem Beispiel der Name des Canvas,  das betreffende Attribut, das gewünschte Ereignismuster und auszuführende Tcl-Befehle eingesetzt werden.


gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Ereignismuster Nach oben: Jenseits statischer Repräsentationen mittels Ereignisdaten Vorheriges: Erhöhte Dynamik


Claus-Peter Rückemann / ruckema@uni-muenster.de / Tel. --
Sun Jan 20 19:17:16 MET 2002