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_00a - eine Konsole für TkLua-Programme

Das Hauptproblem von TkLua-Programmen unter Win32 ist das Fehlen einer Textausgabe. Ohne eine "Konsole" ist es jedoch äußerst schwierig, Fehlermeldungen zu erkennen oder Kontrollausgaben vorzunehmen. Glücklicherweise gestaltet sich die Integration eines Konsolenfensters vergleichsweise einfach, solange nur Ausgaben vorgenommen werden müssen. "TkLua_00a" erweitert das von "TkLua_00" her bekannte Programm um ein solches Konsolenfenster.

Die "Konsole" besteht aus einem separaten toplevel-Fenster mit einem text-Element und zwei damit verknüpften scrollbar-Elementen. Das Fenster erscheint automatisch, sobald die erste Textausgabe vorgenommen wird - und verschwindet erst wieder, wenn das Programm beendet wird (beim Anklicken der Schließbox in der oberen rechten Ecke wird das Konsolenfenster "minimiert" und nicht geschlossen).

Die Textausgabe erfolgt über die von "Lua_02" her gewohnten (globalen) Funktionen print, write und writeln, die zu diesem Zweck neu definiert wurden. Zusätzlich wurde die Funktion _ALERT dahingehend erweitert, daß evtl. Lua-Fehlermeldungen auch im Konsolenfenster erscheinen.

Um die neu hinzugekommenen Funktionen zu testen, gibt das Hauptprogramm zunächst den allgemein bekannten Text "Hello, World!" aus. Anschließend wird ein expliziter Fehler erzeugt und die zugehörige Fehlermeldung auf die Konsole ausgegeben. Zu guter letzt wird geprüft, ob die Konsole auch aus Ereignisbehandlungroutinen heraus zur Verfügung steht - im konkreten Fall durch sekündliche Anzeige des aktuellen Datums und der aktuellen Uhrzeit.

"TkLua_00a" wird ohne Angabe von Kommandozeilen-Argumenten aufgerufen

  lua TkLua_00a.lua

und präsentiert sich wie folgt auf dem Bildschirm:


Bildschirmabzug des TkLua_00a-Anwendungsfensters

Die beschriebene Konsole (mit den von "TkLua_00a" vorgenommenen Ausgaben) erscheint wie folgt:


Bildschirmabzug des TkLua_00a-Konsolenfensters

Quelltext

Das Programm steht im Quelltext zur Verfügung:

Damit die innerhalb von "TkLua_00a.lua" definierte Konsole auch in anderen Beispielen eingesetzt werden kann, wurde der entsprechende Quelltext in eine separate Skript-Datei ausgelagert:

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/Acquainting/TkLua_00a.html    (letzter Stand: 14.04.2002)