[Squeak-ev] Kann eine Instanz sich selbst ersetzen ?

Bert Freudenberg bert at freudenbergs.de
Mon Mai 28 11:16:38 UTC 2007


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 -