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
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
108<br />
Programmierung graphischer Benutzerschnittstellen mit <strong>Tcl</strong>/<strong>Tk</strong><br />
Jetzt kommt das eigentliche Anzeigen der Seite. 1<br />
proc notebook_display {win name} {<br />
global nbInfo<br />
}<br />
set page ""<br />
if {[info exists nbInfo($win-page-$name)]} {<br />
set page $nbInfo($win-page-$name)<br />
} elseif {[winfo exists $win.page$name]} {<br />
set page $win.page$name<br />
}<br />
if {$page == ""} {<br />
error "bad notebook page \"$name\""<br />
}<br />
notebook_fix_size $win<br />
if {$nbInfo($win-current) != ""} {<br />
pack forget $nbInfo($win-current)<br />
}<br />
pack $page -expand yes -fill both<br />
set nbInfo($win-current) $page<br />
Die Argumente sind der Name des Notizbuchs und der Name der Seite,<br />
die angezeigt werden soll. Wenn der Seitenname ein symbolischer<br />
Bezeichner ist, finden wir den Seitennamen im Slot nbInfo($winpage-$name),<br />
den wir vorher erzeugt haben. Wir benutzen info<br />
exists um herauszubekommen, ob ein solcher Eintrag existiert. Wir<br />
lassen auch einfache Ziffern als Seitennamen zu, also z. B. 0, 1, 2, usw. In<br />
diesem Fall finden wir den Namen mit der 2. Alternative (elseif).<br />
Danach zeigen wir diese Seite an, wobei zuerst die gegenwärtige verschwinden<br />
muß (pack forget).<br />
Zuletzt müssen wir uns um die Größen des Notizbuchs kümmern. Die<br />
Seiten werden in der Regel unterschiedlich groß sein. Bei jedem Seiten-<br />
1. Die folgenden Prozeduren sind nicht in der Datei f218.tcl enthalten. Sie wurden<br />
durch Einbinden des Paketes Efftcl durch das Kommando package require<br />
Efftcl verfügbar gemacht. Dies gilt ebenfalls für die Prozeduren zum Umgang<br />
mit den Radioboxen.