2009-03-28 8 views
3

Je me demandais si quelqu'un pouvait m'aider avec une technique pour résoudre le problème suivant dans Smalltalk. Plus précisément Cincoms Visualworks.Mises à jour d'Asynch GUI dans Smalltalk

Je voudrais coder une interface graphique simple qui a trois champs et les traite comme suit:

Le premier champ entre un nombre (5 par exemple).

Le second champ affiche simplement deux fois le premier champ (il affiche 10 dans cet exemple)

Maintenant, le bit intéressant ... le troisième champ affiche une valeur d'une classe totalement différente (appelons-classe X). Cependant, la valeur doit être affichée sur l'interface graphique chaque fois que cette valeur dans la classe X change - elle ne doit pas attendre une pression de touche depuis un bouton de mise à jour. La valeur de la classe X pourrait provenir de (disons) l'espace de travail.

Je pense que je pourrais le faire via des adaptateurs d'aspect mais je n'arrive pas à obtenir la 'troisième valeur de champ' à mettre à jour de manière asynchrone. Toutes techniques, astuces ou astuces seront les bienvenues - (en particulier les extraits de code !!)

Merci Kevin

Répondre

3

j'ai triés moi-même. Après avoir essayé le mécanisme de dépendance (fonctionne bien - mais simplement pas nécessaire), en regardant les annonces (merci James chez Cincom - communication personnelle), j'ai trouvé que tout ce que je devais faire était de simplement créer une méthode et lui envoyer un message avec un paramètre ma valeur) cette méthode a simplement mis à jour le porteur de valeur (c'est-à-dire l'aspect du champ GUI) avec le message "value:". Plus je regarde Smalltalk, plus je l'aime!