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

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!