2013-04-02 3 views
5

У меня есть два морфа, которые находятся в другом.Как изменить положение подпорки

a:= Morph new. 
b:= Morph new. 
a addMorph: b. 
a openInWorld. 

, но когда я хочу, чтобы изменить положение Б, делая положение B: 100 @ 100, она никогда не показывает изменения, поэтому то, что я здесь отсутствует? или это как-то обязанность отслеживать позицию b?

+0

Is 'Morph' даже достаточно полной, чтобы использовать его, вам не нужно использовать' RectangleMorph' или некоторые другого конкретного подкласса «Морф»? –

+2

@Shakedown Да, Morph достаточно полно, чтобы использовать его напрямую. –

ответ

6

Это должно работать:

| morph1 morph2 | 

morph1 := Morph new. 
morph1 color: Color red. 
morph1 extent: [email protected] 

morph2 := Morph new. 
morph2 color: Color green. 
morph2 extent: [email protected] 

morph1 addMorph: morph2. 
morph2 position: [email protected] 
morph1 openInWorld. 

Результат:

enter image description here

Обратите внимание, что позиции являются абсолютными, если вы хотите относительные позиции вы должны сделать что-то вроде:

morph2 position: (morph1 position + ([email protected])) 

Если вы добавите Morphs в окно, вы можете hav e Посмотрите на SystemWindow #addMorph: fullFrame: это дает лучшие возможности для позиционирования подфайлов. Morph также реализует #addMorph: fullFrame: но почему-то это не работает для меня в Pharo 2.0.

Посмотрите: Pharo collaborActive book и в главе Основные виджеты Pharo по примеру 2.

 Смежные вопросы

  • Нет связанных вопросов^_^