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 -