Hallo Ihr,
ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen ?". Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die Punkte an denen man auf das Morph klickt sammelt (in einer OrderedCollection). Jetzt hätte ich gerne das nach Verlassen des Morphs alle referenten auf die OrderedCollection verweisen (und eben nicht mehr auf Morph selbst) ... sowas wie onMouseLeave: event
self := myOrderedCollection
funktioniert nicht. Auch der Umweg über
Replacer
replace: anObject with: anotherObject
anObject := anotherObject
funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch ganz sinnig ist wenn das System noch irgendwie an die Instanz rankommt. (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit dem eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht mehr zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa. Ober, zahlen bitte" ?
Fragt sich Holger
Hallo Holger,
ich hoffe ich versteh dich richtig, aber die von dir vorgeschlagene Lösung wirkt recht merkwürdig zumindest für dein Problem (Ansatz von Metaprogrammierung für ein allgemeines Problem). Ich empfehle dir vielleicht mal ein paar Designpatterns anzuschauen, in Betracht kommen vermutlich State, Mediator, Strategy etc, dass ist abhängig von deinem gesamten Problemumfeld.
Mit freundlichen Grüßen Michael Perscheid
-----Ursprüngliche Nachricht----- Von: squeak-ev-bounces@lists.squeakfoundation.org [mailto:squeak-ev- bounces@lists.squeakfoundation.org] Im Auftrag von Holger Schuh Gesendet: Montag, 28. Mai 2007 12:50 An: Squeak in Germany / Squeak in Deutschland Betreff: [Squeak-ev] Kann eine Instanz sich selbst ersetzen ?
Hallo Ihr,
ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen ?". Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die Punkte an denen man auf das Morph klickt sammelt (in einer OrderedCollection). Jetzt hätte ich gerne das nach Verlassen des Morphs alle referenten auf die OrderedCollection verweisen (und eben nicht mehr auf Morph selbst) ... sowas wie onMouseLeave: event
self := myOrderedCollection
funktioniert nicht. Auch der Umweg über
Replacer
replace: anObject with: anotherObject
anObject := anotherObject
funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch ganz sinnig ist wenn das System noch irgendwie an die Instanz rankommt. (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit dem eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht mehr zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa. Ober, zahlen bitte" ?
Fragt sich Holger
On May 28, 2007, at 12:50 , Holger Schuh wrote:
Hallo Ihr,
ich hab mal ne ganz blöde Frage: "Kann eine Instanz sich selbst ersetzen ?".
Ja - #becomeForward: oder #become: (letzteres ist symmetrisch, tauscht also die Objektidentitäten).
ABER: Dies ist eine Operation, die so gut wie nie beim "normalen" Programmieren eingesetzt wird. Wenn du das z.B. mit dem Morph und der Collection machst wie unten angedeutet, würde z.B. das System statt deines Morphs auf einmal versuchen, eine OrderedCollection auf den Bildschirm zu malen, was aller Wahrscheinlichkeit nach einen Systemabsturz zur Folge hätte.
Gib statt dessen einfach deine OrderedCollection zurück - eine Zugriffsmethode sollte doch nicht so schwer sein?
bla := myMorph myCollection.
Hintergrund ist folgender: ich habe ein Morph so abgewandelt das die Punkte an denen man auf das Morph klickt sammelt (in einer OrderedCollection). Jetzt hätte ich gerne das nach Verlassen des Morphs alle referenten auf die OrderedCollection verweisen (und eben nicht mehr auf Morph selbst) ... sowas wie onMouseLeave: event
self := myOrderedCollection
funktioniert nicht. Auch der Umweg über
Replacer
replace: anObject with: anotherObject
anObject := anotherObject
funktioniert nicht. Inzwischen kann ich mir auch vorstellen das es doch ganz sinnig ist wenn das System noch irgendwie an die Instanz rankommt. (Mülleinsammeln z.B.). Aber wisst Ihr ob es da einen Mechanismus gibt mit dem eine Instanz signalisieren kann : "Okay Leute, ab jetzt bin ich nicht mehr zuständigen, wenn es Arbeit gibt wendet Euch bitte an denAnderenDa. Ober, zahlen bitte" ?
Fragt sich Holger
- Bert -
squeak-ev@lists.squeakfoundation.org