This worked perfectly! Thank you so much. Best regards, Laurence.
On Wed, Jun 18, 2008 at 1:35 AM, Gisle Aas <[EMAIL PROTECTED]> wrote: > On Jun 17, 2008, at 11:42, Laurence Anthony wrote: > >> Does anybody know how to prevent the Tkx (Tcl/Tk) error report dialogs >> popping up in the GUI (without using eval throughout the code)? In >> Perl/Tk, things just die quietly. In Tkx, the error dialog tells the >> user exactly on which line the bug is. This is great for debugging, >> but creates a poor user experience. > > You define the Tcl 'bgerror' function in the if you want to override this. > The Tkx API does not provide a direct way to do this if you want the > bgerror command to be a perl function, so this example shows a possible > workaround: > > #!perl -w > > use strict; > use warnings; > use Tkx; > > Tkx::button(".b", > -text => "Hello, world", > -command => sub { Tkx::foo(); }, # XXX will fail > ); > Tkx::pack(".b"); > > Tkx::set("perl_bgerror", sub { > splice(@_, 0, 3); # skip internal callback junk > my $msg = shift; > print "Error: $msg\n"; > }); > > Tkx::eval(<<'EOT'); > proc bgerror {msg} { > global perl_bgerror > $perl_bgerror $msg > } > EOT > > Tkx::MainLoop() > > __END__ > > Regards, > Gisle > > -- Laurence Anthony, PhD Director, Associate Professor Center for English Language Education in Science and Engineering (CELESE) Faculty of Science and Engineering Waseda University Japan