Bonjour,
Je dois afficher des boutons qui doivent appeler la même fonction avec un paramètre différent
Je boucle quelques fois sur $i, $curveObj est un objet que j'ai crée
Ce code fonctionne mal vu que c'est la dernière valeur de $i qui est envoyé quelque soit le bouton sur lequel on pousse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $frame->Button( -text => "$color", -command => sub { $current_color=$curveObj->changeColorPos($current_color,$i); } )->pack();
J'ai donc essayé
qui plante à l'éxecution
Code : Sélectionner tout - Visualiser dans une fenêtre à part -command => [\&$curveObj->changeColorPos,$current_color,$i]
j'ai donc essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Tk::Error: Not a CODE reference at ./kandela.pl line 546. Tk callback for .frame1.frame5 main::subFrameCurve at ./kandela.pl line 546 main::useCurve2 at ./kandela.pl line 2297 <ButtonRelease> (command bound to event)
qui fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 sub ccp { my ($cc,$i)=@_; $curveObj->changeColorPos($cc,$i); } [....] -command => [\&ccp,$current_color,$i]
Ma question, peut-on écrire cela en une ligne (comme le deuxième essai), mais aussi, comment récupérer une variable de retour ($current_color dans le premier exemple) ?
Merci.
Partager