Andreas Rozek Hints for Reading List of Recent Changes Guestbook Entry Contact the Author  Deutsche Version  HomePage Previous Topic Next Topic  First Page of Current Topic Next Page Previous Page

TkLua_00a - a Console for TkLua Programs

An important issue of TkLua programs (running under a Win32 operating system) is the absence of a "console" for textual output. However, without such a console it becomes quite difficult to recognize error messages or to output some text, e.g. for debugging purposes. Fortunately, the integration of a console window turns out to be relatively simple, as long as it is only used for text output. "TkLua_00a" adds such a console to the "TkLua_00" example.

This "Console" consists of a separate toplevel window containing a text widget and two associated scrollbar widgets. The window appears automatically as soon as the first text is printed onto it - and it disappears not before the associated program terminates (a click into the "close box" in the upper right corner of the console window just minimizes the window rather than closing it).

Text output is achieved by means of the (global) methods print, write and writeln, known from "Lua_02" which have been redefined for that purpose. Furthermore, the function _ALERT has been extended such that Lua error messages will now show up in the console window as well.

In order to test the new functions, the "main program" of "TkLua_00a" first prints the well-known text "Hello, World!". Then, an error is generated which should output its associated error message to the console. Finally, the periodic display of the actual date and time (once per second) checks whether the console is also available from within Tk event handlers.

"TkLua_00a" should be invoked without any command line arguments

  lua TkLua_00a.lua

and presents itself as follows:


Screenshot of the TkLua_00a Application Window

The console window (containing some output from "TkLua_00a") looks as follows:


Screenshot of the TkLua_00a Console Window

Source Code

The source code of this example is available for download:

In order to make the console defined by "TkLua_00a.lua" available to other programming examples, its source code may be downloaded separately as a Lua script file:

References

[1] Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
Reference Manual of the Programming Language Lua 4.0
(see http://www.lua.org/manual)
the reference manual contains any relevant information about the language itself, the set of standard libraries and its interface to the run-time environment;
[2] Waldemar Celes
tklua - Binding Tk to Lua
(see http://www.tecgraf.puc-rio.br/~celes/tklua/)
TkLua provides support for Tk widgets (allowing to construct graphical user interfaces) from within Lua scripts. The given web page describes the "basic concepts" behind TkLua and explains how to use it from within Lua scripts;
[3] Christian Vogler
TkLua (4.0a1)
(see http://www.cis.upenn.edu/~cvogler/lua/tklua.html)
since the original distribution of TkLua [2] has been developed for Lua versions prior to 4.0, Christian Vogler ported TkLua to the new Lua 4.0 API;
[4] Tcl/Tk 8.3.4 Manual
(see http://www.scriptics.com/man/tcl8.3/)
if you plan to use TkLua for your Lua script, you will hardly survive without the Tcl/Tk documentation - it can be viewed online at the given address (unless you already downloaded the Tcl/Tk distribution onto your system and installed it there);

Disclaimer

Please, consider also the author's Disclaimer!

http://www.Andreas-Rozek.de/Lua/Acquainting/TkLua_00a_en.html    (last Modification: 15.04.2002)