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.

Kapitel 9 – Der Gebrauch der Leinwand 199<br />

d. h. wir erzeugen einen Kalender .cal und geben ein optionales Datum<br />

mit, das den Monat Juli auswählt. Eine alternative Datumsangabe wäre<br />

now, die dazu führt, daß das Programm sich den Monat über die Systemzeit<br />

(clock seconds) holt.<br />

Wichtig ist, daß wir .cal mit pack-Optionen -expand und -fill<br />

zur Anzeige gebracht haben. Dadurch wird auch die Leinwand gestreckt,<br />

wenn das Fenster sich vergrößert. Dies müssen wir durch Neuzeichnen<br />

des Kalenders unterstützen.<br />

proc calendar_create {win {date "now"}} {<br />

global calInfo env<br />

}<br />

if {$date == "now"} {<br />

set time [clock seconds]<br />

} else {<br />

set time [clock scan $date]<br />

}<br />

set calInfo($win-time) $time<br />

set calInfo($win-selected) ""<br />

set calInfo($win-selectCmd) ""<br />

set calInfo($win-decorateVar) ""<br />

frame $win -class Calendar<br />

canvas $win.cal -width 3i -height 2i<br />

pack $win.cal -expand yes -fill both<br />

button $win.cal.back \<br />

-bitmap @[file join $env(EFFTCL_LIBRARY) \<br />

images back.xbm] -command "calendar_change $win -1"<br />

button $win.cal.fwd \<br />

-bitmap @[file join $env(EFFTCL_LIBRARY) \<br />

images fwd.xbm] -command "calendar_change $win +1"<br />

bind $win.cal "calendar_redraw $win"<br />

return $win<br />

Zu beachten ist momentan, daß H+McL einen globalen Array calInfo<br />

einführen mit den üblichen assoziativen Schlüsseln.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!