OVH Cloud OVH Cloud

transferer des widgets via un sous-programme

3 réponses
Avatar
Patrice Karatchentzeff
Salut,

J'ai une chaîne de widgets répétitifs et j'ai eu la joyeuse idée de
mutualiser le tout dans un sous-programme plutôt que de copier
les-dits widgets au fur et à mesure... Cependant, je n'arrive pas à
passer en paramètre les différents widgets à mon sous-programme :

l'idée

my $top = MainWindow -> new;
my $main = $top -> Frame -> pack;

Affiche($main) ;

sub Affiche {
my $toto = @_ ;
my $titi = $toto -> Label...
}

etc. Je ne copie pas le code car il est un peu longuet...

Dans ce cas de figure, j'ai un

Can't call method "Label" without a package or object reference at
./crssdb.pl line 266.

En effet, si je tente un print bête et méchant de $toto avant et après
l'appel au sous-programme, j'ai

toto = Tk::Frame=HASH(0x83c0388)
toto = $toto

J'ai essayé aussi le passage par référence mais j'ai bien la référence
à $toto et non pas le Tk::...

Une idée ou ce n'est pas possible à faire (ce qui m'étonnerait un peu) ?

Merci

PK

--
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)       

3 réponses

Avatar
Paul GABORIT
À (at) Tue, 01 Jun 2004 00:19:28 +0200,
Patrice Karatchentzeff écrivait (wrote):
J'ai une chaîne de widgets répétitifs et j'ai eu la joyeuse idée de
mutualiser le tout dans un sous-programme plutôt que de copier
les-dits widgets au fur et à mesure... Cependant, je n'arrive pas à
passer en paramètre les différents widgets à mon sous-programme :

l'idée

my $top = MainWindow -> new;
my $main = $top -> Frame -> pack;

Affiche($main) ;

sub Affiche {
my $toto = @_ ;


my ($toto) = @_;

my $titi = $toto -> Label...
}


--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
Patrice Karatchentzeff
Paul GABORIT writes:

À (at) Tue, 01 Jun 2004 00:19:28 +0200,
Patrice Karatchentzeff écrivait (wrote):


[...]

sub Affiche {
my $toto = @_ ;


my ($toto) = @_;


oui, désolé, c'est une typo de ma part : le code initial comporte bien
la parenthèse...

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       


Avatar
Paul GABORIT
À (at) Tue, 01 Jun 2004 19:43:49 +0200,
Patrice Karatchentzeff écrivait (wrote):
Paul GABORIT writes:

À (at) Tue, 01 Jun 2004 00:19:28 +0200,
Patrice Karatchentzeff écrivait (wrote):


[...]

sub Affiche {
my $toto = @_ ;


my ($toto) = @_;


oui, désolé, c'est une typo de ma part : le code initial comporte bien
la parenthèse...


Donnez votre *vrai* code minimal et nous pourrons peut-être voir ce qui ne va
pas...

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>