From: [email protected]
[mailto:[email protected]] On Behalf Of Tony
W. Bass
Sent: 22 May 2009 01:45
To: [email protected]
Subject: listbox error
> Hi All,
>
> Can anyone explain to me why I get the error:
>
> Can't call method "g_bind" without a package or object reference at
C:\scripts\Error Code\listbox_error.pl line > 17.
>
> Whenever I run the following code. This is put together from a larger
program and if you take out the bind
> language you get the same basic error on the curselection statement.
This is driving me crazy at this point.
>
Start by putting ';use strict; use warnings;' at the start of your
script, and declaring variables in a small a scope as necessary.
> use Tkx;
> my $mw = Tkx::widget->new(".");
> $mw->g_wm_title("Test Program");
> (my $nb = $mw->new_ttk__notebook(-height => 768, -width =>
1024))->g_grid();
> testtab1();
> testtab2();
> Tkx::MainLoop();
> sub testtab1 {
> $tab1 = $nb->new_ttk__frame(-padding => "10");
> $userbox = $tab1->new_tk__listbox(-height => 20,
-listvariable=>\$cnames)->g_grid(-column=>1,-row=>1);
I'm not a Tkx expert, but it looks like g_grid doesn't return what you
think it does, so you need to split the above.
$userbox = $tab1->new_tk__listbox(-height => 20,
-listvariable=>\$cnames);
$userbox->g_grid(-column=>1,-row=>1);
Then you can move on to your next error, which is a bit more obvious :-)
>
> $userbox->g_bind("<<ListboxSelect>>", sub {GetSecurity()});
> $nb->add($tab1, -text => 'Test Tab', -state=>'hidden');
> }
> @countrynames = ("Argentina", "Australia", "Belgium", "Brazil",
"Canada", "China", "Denmark",
> "Finland", "France", "Greece", "India", "Italy", "Japan",
"Mexico", "Netherlands", "Norway", "Spain",
> "Sweden", "Switzerland");
> $cnames = ''; foreach $i (@countrynames) {$cnames = $cnames . ' {' .
$i . '}';};
> sub GetSecurity {
> my $u;
> my @idx = $userbox->curselection;
> if ($#idx==0) {
> $u = $countrynames[$idx[0]];
> }
> print "$u\n";
> }
HTH
--
Brian Raven
This e-mail may contain confidential and/or privileged information. If you are
not the intended recipient or have received this e-mail in error, please advise
the sender immediately by reply e-mail and delete this message and any
attachments without retaining a copy.
Any unauthorised copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs