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 163<br />

wir diesmal resizeDrawing, und nur an diese das Neumalen der Leinwand<br />

binden.<br />

bind resizeDrawing {<br />

resize_drawing .display<br />

}<br />

set tags [bindtags .]<br />

bindtags . [listinsert $tags 0 resizeDrawing]<br />

Nur das oberste Fenster hat diese Bindungsmarke und nur . ruft daher<br />

resize_drawing auf. Viele andere Unterwidgets erhalten weiterhin<br />

das -Ereignis und können entsprechend darauf reagieren,<br />

jedoch ohne Aufruf der Prozedur zum Neumalen der Leinwand.<br />

8.6 Fehlersuche mit bindings<br />

Oft wundert man sich bei einer Anwendung, welches Verhalten ein Widget<br />

hat und welche Ereignisse es erhält.<br />

8.6.1 Bindings anzeigen<br />

Falls sich ein Widget nicht wie gewünscht verhält, kann man die folgende<br />

Prozedur (aus dem Library Code von H+McL) verwenden, um sich eine<br />

Zusammenstellung der Bindings auflisten zu lassen.<br />

proc bind_show {w {mode "-quiet"}} {<br />

puts "$w"<br />

foreach tag [bindtags $w] {<br />

puts "\t$tag"<br />

foreach spec [bind $tag] {<br />

puts "\t\t$spec"<br />

if {$mode == "-verbose"} {<br />

set cmd [bind $tag $spec]<br />

set cmd [string trim $cmd "\n"]<br />

regsub -all "\n" $cmd "\n\t\t\t" cmd<br />

puts "\t\t\t$cmd"<br />

}<br />

}<br />

}<br />

}

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!