30.12.2012 Aufrufe

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

Skript Tcl/Tk - Praktische Informatik / Datenbanken - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 8 – Ereignisbehandlung 157<br />

8.5 Bindemarken<br />

Ein Widget kann auf ein einzelnes Ereignis mit mehr als einem Verhalten<br />

reagieren. Nehmen wir wish und eine Marke und binden wir zwei Kommandos<br />

daran für das selbe Ereignis.<br />

$ wish<br />

% pack [label .x -text "Ziel"]<br />

% bind .x {puts "entering %W (via %W)"}<br />

% bind Label {puts "entering %W (via Label)"}<br />

Zieht man mit der Maus über das Widget wird die eine oder andere, oder<br />

beide, der zugebundenen Reaktionen gezeigt.<br />

entering .x (via .x)<br />

entering .x (via Label)<br />

Will man sich anzeigen lassen, welche Bindings existieren und in welcher<br />

Reihenfolge diese zur Ausführung kommen, kann man sich dies mit dem<br />

Kommando bindtags ausgeben lassen.<br />

% bindtags .x<br />

.x Label . all<br />

Demnach reagiert das Widget zuerst mit dem Binding für .x, danach mit<br />

dem Binding für die Klasse Label, danach ... für das globale Widget .,<br />

zuletzt ... für all(es).<br />

Mit dem bindtags-Kommando lassen sich nicht nur die Bindings<br />

anzeigen, man kann die Bindemarken auch neu anordnen, z. B. durch<br />

% bindtags .x {Label .x . all}<br />

wobei jetzt die Klasse Label mit ihrem Binding nach vorne gerückt ist.<br />

entering .x (via Label)<br />

entering .x (via .x)<br />

Die obige Reaktion auf eine Mausbewegung zeigt jetzt das veränderte<br />

Verhalten.<br />

Auch möglich wäre das Weglassen einzelner Bindings oder das Ausschalten<br />

aller Bindings mittels

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!