| Andreas Rozek |
|
TkLua_00a - eine Konsole für TkLua-ProgrammeDas 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:
Die beschriebene Konsole (mit den von "TkLua_00a" vorgenommenen Ausgaben) erscheint wie folgt:
QuelltextDas 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
|
| http://www.Andreas-Rozek.de/Lua/Acquainting/TkLua_00a.html | (letzter Stand: 14.04.2002) |