[Squeak-fr] [tutor] problème de passage de messages

Damien Cassou damien.cassou at laposte.net
Jeu 8 Déc 05:41:41 CET 2005


francois schnell a écrit :

> Hello,
>
> Je suis bien sur la liste [tutor-squeak] ? cool ;)
>
> Je me rafraichis un peu la mémoire et c'est pas très fort ... question 
> over-newbie:
>
> Je veux simplement envoyer un message à partir d'un objet vers une 
> autre via le code suivant:
>
> | a b |
> b := SimpleButtonMorph new.
> a := SimpleButtonMorph new.
> b color: Color red. b label: 'Click Me'. b position: Display center.
> a color: Color green. a label: 'Click on the other button and Frenchy 
> will be happy'. a position: 200 at 200.
> b addMouseUpActionWith: 'a label: ''Yeah, thanks !!!!'''.
> a openInWorld.
> b openInWorld.
>
> Je veux donc cliquer sur mon bouton 'Click Me' pour changer le label 
> de l'autre bouton.
>
> Evidemment ça coince à la ligne:  b addMouseUpActionWith: 'a label: 
> ''Yeah, thanks !!!!'''.
> Si j'y remplace 'a' par 'self'  ça marche  pour le bouton sur lequel 
> je viens de cliquer (ce qui n'est pas l'objectif).
>
> La fenêtre de Debug me dit qu'il ne comprend pas le message 'label'.
> Cela veut dire que dans cette ligne 'a' ne représente pas mon objet 
> définit plus haut?
>
> How-to I do ?
>
> thanks

Le problème, c'est que 'b' ne connaît plus 'a' au moment de cliquer sur 
le bouton. Tu dois informer
'b' de l'existance de 'a' :

b target: a.
b addMouseUpActionWith: 'self target label: ''Yeah, thanks !!!!'''.

Je ne sais pas si c'est bien à ça que sert #target, mais ça à l'air :-)


-- 
Damien


More information about the Squeak-fr mailing list