listbox error

listbox error

am 22.05.2009 02:45:20 von Tony Bass

This is a multi-part message in MIME format.

--===============1730517669==
Content-class: urn:content-classes:message
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C9DA76.95FBA3A4"

This is a multi-part message in MIME format.

------_=_NextPart_001_01C9DA76.95FBA3A4
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi All,

=20

Can anyone explain to me why I get the error:

=20

Can't call method "g_bind" without a package or object reference at
C:\scripts\Error Code\listbox_error.pl line 17.

=20

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.=20

=20

=20

use Tkx;

my $mw =3D Tkx::widget->new(".");

$mw->g_wm_title("Test Program");

(my $nb =3D $mw->new_ttk__notebook(-height =3D> 768, -width =3D>
1024))->g_grid();

testtab1();

testtab2();

Tkx::MainLoop();

sub testtab1 {

$tab1 =3D $nb->new_ttk__frame(-padding =3D> "10");

$userbox =3D $tab1->new_tk__listbox(-height =3D> 20,
-listvariable=3D>\$cnames)->g_grid(-column=3D>1,-row=3D>1);

=20

$userbox->g_bind("<>", sub {GetSecurity()});

$nb->add($tab1, -text =3D> 'Test Tab', -state=3D>'hidden');

}

@countrynames =3D ("Argentina", "Australia", "Belgium", "Brazil",
"Canada", "China", "Denmark",=20

"Finland", "France", "Greece", "India", "Italy", "Japan",
"Mexico", "Netherlands", "Norway", "Spain",=20

"Sweden", "Switzerland");

$cnames =3D ''; foreach $i (@countrynames) {$cnames =3D $cnames . ' {' . =
$i
.. '}';};

sub GetSecurity {

my $u;

my @idx =3D $userbox->curselection;

if ($#idx==0) {

$u =3D $countrynames[$idx[0]];

}

print "$u\n";

}

=20

Thanks immensely for any help.

=20

Tony Bass


------_=_NextPart_001_01C9DA76.95FBA3A4
Content-Type: text/html;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spread sheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/mee tings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/x ml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/oi s/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/di rectory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/20 02/1/alerts/"=
xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile " =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/partto part" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/wor kflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsi g-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsi g" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/200 6/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compa tibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/200 6/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/service s/2006/types"=
=
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/service s/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/ SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPor talServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"" xmlns=3D"http://www.w3.org/TR/REC-html40">


charset=3Dus-ascii">









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. =



 



 



use Tkx;



my $mw =3D =
Tkx::widget->new(".");



$mw->g_wm_title("Test =
Program");



(my $nb =3D $mw->new_ttk__notebook(-height =
=3D> 768,
-width =3D> 1024))->g_grid();



testtab1();



testtab2();



Tkx::MainLoop();



sub testtab1 {



    $tab1 =3D =
$nb->new_ttk__frame(-padding
=3D> "10");



    $userbox =3D
$tab1->new_tk__listbox(-height =3D> 20,
-listvariable=3D>\$cnames)->g_grid(-column=3D>1,-row=3D>1); :p>



   



   
$userbox->g_bind("<<ListboxSelect>>", sub
{GetSecurity()});



    $nb->add($tab1, -text =3D> =
'Test
Tab', -state=3D>'hidden');



}



@countrynames =3D ("Argentina",
"Australia", "Belgium", "Brazil",
"Canada", "China", "Denmark", =



       
"Finland", "France", "Greece", =
"India",
"Italy", "Japan", "Mexico",
"Netherlands", "Norway", "Spain", =



       
"Sweden", "Switzerland");



$cnames =3D ''; foreach $i (@countrynames) {$cnames =
=3D $cnames
.. ' {' . $i . '}';};



sub GetSecurity {



    my $u;



    my @idx =3D =
$userbox->curselection;



    if ($#idx==0) =
{



        $u =3D
$countrynames[$idx[0]];



    }



    print =
"$u\n";



}



 



Thanks immensely for any help.



 



Tony Bass









------_=_NextPart_001_01C9DA76.95FBA3A4--

--===============1730517669==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
--===============1730517669==--

RE: listbox error

am 22.05.2009 12:08:52 von Brian Raven

From: activeperl-bounces@listserv.ActiveState.com
[mailto:activeperl-bounces@listserv.ActiveState.com] On Behalf Of Tony
W. Bass
Sent: 22 May 2009 01:45
To: activeperl@listserv.activestate.com
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("<>", 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
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

RE: listbox error

am 22.05.2009 17:36:23 von Tony Bass

Brian,

Many thanks, this seemed to have solved the problem. I typically use
strict; but not use warnings which would have helped. It is strange why
the g_grid command will work as I coded it originally on buttons,
labels, and entry's but not on lists. If you have any idea why that
would be I would like to know.

Thanks,

Tony

-----Original Message-----
From: activeperl-bounces@listserv.ActiveState.com
[mailto:activeperl-bounces@listserv.ActiveState.com] On Behalf Of Brian
Raven
Sent: Friday, May 22, 2009 3:09 AM
To: activeperl@listserv.activestate.com
Subject: RE: listbox error

From: activeperl-bounces@listserv.ActiveState.com
[mailto:activeperl-bounces@listserv.ActiveState.com] On Behalf Of Tony
W. Bass
Sent: 22 May 2009 01:45
To: activeperl@listserv.activestate.com
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("<>", 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
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs