Andreas Rozek Lesehinweise letzte Änderungen Gästebuch-Eintrag Mitteilungen an den Autor  English Version  zur Leitseite zum vorherigen Thema zum nächsten Thema  zur ersten Seite zur vorherigen Seite zur nächsten Seite

TkLua Chime

Wie Clock gehört auch das an dieser Stelle beschriebene TkLua-Beispielprogramm Chime zu den ersten, mit denen der Autor die korrekte (und dauerhafte) Funktion seiner TkLua-Distribution für Win32-Plattformen getestet hat. Neben einer Uhr mit Digitalanzeige bietet das Programm noch einen "Halbstundenschlag mit Vorwarnung", der jeweils zur halben und vollen Stunde durch ein akustisches Signal auf die verstrichene Zeit aufmerksam macht (und auf diese Weise verhindern soll, daß unbemerkt zuviel Zeit z.B. in eine Internet-Recherche gesteckt wird).


Bildschirmabzug des TkLua-Beispielprogrammes Chime

Funktionsbeschreibung

Den überwiegenden Teil der Benutzeroberfläche nimmt die digitale Zeitanzeige ein - ein Checkbutton informiert über den Zustand des akustischen Alarms und eine Statuszeile über die verbleibende Zeit bis zur nächsten Vorwarnung (jeweils fünf Minuten vor einer halben oder vollen Stunde) bzw. bis zum nächsten Schlag.

Die Digitalanzeige besteht aus fünf Label-Elementen (tklabel) zur Anzeige von Rastergrafiken für die Ziffern und den (blinkenden) Doppelpunkt zwischen Stunden- und Minuten-Anzeige. Die folgenden Abbildungen zeigen die dafür verwendeten Grafikdateien:

Den Kern des Programmes bildet die Funktion "processTick": einmal pro Sekunde aufgerufen, werden durch abwechselnde Darstellung eines ein- oder ausgeschalteten Doppelpunktes die Funktion des Programmes angezeigt und bei Bedarf (d.h. üblicherweise einmal pro Minute) die Zeitanzeige sowie die Statusanzeige aktualisiert. Zusätzlich wird jeweils zur halben und zur vollen Stunde sowie fünf Minuten zuvor mithilfe des Tk-Kommandos "bell" ein akustisches Signal ausgegeben.

Neben dem "Hauptprogramm" enthält Chime die folgenden (globalen) Funktionen (in alphabetischer Reihenfolge):

  • processTick (required)
    wird einmal pro Sekunde aufgerufen und stellt abwechselnd einen ein- oder ausgeschalteten Doppelpunkt dar. Hat sich die Uhrzeit (in Stunden und Minuten) seit dem letzten Aufruf verändert, wird außerdem die Zeitanzeige aktualisiert;

  • showTime (hours,minutes)
    lädt die Label-Elemente für die Zeitanzeige mit der zur jeweiligen Ziffer passenden Rastergrafik;

  • updateUserInterface (hours,minutes)
    aktualisiert die Statuszeile unterhalb der Zeitanzeige mit einem Hinweis auf die nächste Vorwarnung bzw. den nächsten Halbstundenschlag. Außerdem wird bei Bedarf (und wenn die entsprechende Funktion vom Benutzer aktiviert wurde) mithilfe des Tk-Kommandos "bell" ein akustisches Signal ausgegeben;

Ähnlich wie im Programm Clock kommt es auch hier aufgrund der Einfachheit des Timer-Aufrufes bisweilen zum Überspringen einzelner Sekunden - auf die korrekte Funktion des Programmes hat dies jedoch keine Auswirkung.

Quelltext

Der Quelltext des vorgestellten Programmes kann von hier aus heruntergeladen werden:

Zusätzlich stehen alle für das Programm benötigten Dateien (inkl. des Quelltextes) als ZIP-Archiv zur Verfügung:

Literaturhinweise

[1] Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
Reference Manual of the Programming Language Lua 4.0
(siehe http://www.lua.org/manual)
das Referenzhandbuch enthält alle wesentlichen Informationen zur Sprache selbst, den zugehörigen Standardbibliotheken und der Schnittstelle zur Laufzeitumgebung;
[2] Waldemar Celes
tklua - Binding Tk to Lua
(siehe http://www.tecgraf.puc-rio.br/~celes/tklua/)
TkLua ermöglicht die Verwendung von Tk-Komponenten (für grafische Benutzeroberflächen) von Lua-Programmen aus. Die genannte Web-Seite beschreibt wie TkLua funktioniert und wie es in Lua-Programmen eingesetzt werden kann;
[3] Christian Vogler
TkLua (4.0a1)
(siehe http://www.cis.upenn.edu/~cvogler/lua/tklua.html)
während die unter [2] genannte TkLua-Distribution nur für Lua-Versionen < 4.0 gedacht ist, eignet sich die hier erwähnte Fassung für Lua-Versionen mit dem neuen Lua 4.0 API;
[4] Tcl/Tk 8.3.4 Manual
(siehe http://www.scriptics.com/man/tcl8.3/)
die Dokumentation zu Tcl/Tk ist für die Arbeit mit TkLua unabdingbar - unter der angegebenen Adresse kann diese Dokumentation im Internet eingesehen werden (sofern man sich die Tcl/Tk-Distribution nicht ohnehin schon auf den eigenen Rechner heruntergeladen hat);

Haftungsausschluß

Bitte beachten Sie auch den Haftungsausschluß des Autors!

http://www.Andreas-Rozek.de/Lua/Examples/Chime/index.html    (letzter Stand: 14.04.2002)