Bonjour, je pense avoir trouvé mieux finalement, j'ai complété la FAQ sur ofset avec :
on peut utiliser Morph>>#layoutInset: et Morph>>#cellInset: : ces deux méthodes prennent un point en argument pour spécifier l'espace horizontal et vertical; #layoutInset: est pour l'espace intérieur du conteneur #cellInset: est pour l'espace intérieur entre les morphs contenus
| conteneur rect1 rect2 rect3 | conteneur := AlignmentMorph newRow color: Color black; layoutInset: 50 @ 0; cellInset: 50 @ 0; hResizing: #shrinkWrap; vResizing: #shrinkWrap. rect1 := RectangleMorph new extent: 50 @ 20; color: Color red. rect2 := RectangleMorph new extent: 50 @ 20; color: Color blue. rect3 := RectangleMorph new extent: 50 @ 20; color: Color green. conteneur addMorph: rect1 ; addMorph: rect2; addMorph: rect3; openInWorld.
C'est mieux car on évite l'utilisation d'un morph fantôme et c'est paramétrable en x et y. Il faut un morph conteneur avec un TableLayout.
alain
FERRERE Frédéric a écrit :
Bonjour,
Une petite question sur le positionnement des morphs.
Je souhaite placer 3 morphs en ligne dans un morph plus grand (un tableau à 3 colonnes), de telle sorte que l'espace entre les morphs et les bordures soient égaux.
La seule manière que j'ai trouvé pour réaliser ce placement est d'utiliser 4 morph "espace". Cette technique donne le résultat escompté mais existe t'il un moyen d'arriver au même résultat sans utiliser ces morphs supplémentaires ?
Merci.
| contener rect1 rect2 rect3 space1 space2 space3 space4 |
contener := Morph new extent: 300@300; color: Color black; layoutPolicy: (TableLayout new); listDirection: #leftToRight; listCentering: #justified; wrapCentering: #center. space1 := Morph new hResizing: #spaceFill; color: Color transparent. space2 := Morph new hResizing: #spaceFill; color: Color transparent. space3 := Morph new hResizing: #spaceFill; color: Color transparent. space4 := Morph new hResizing: #spaceFill; color: Color transparent. rect1 := RectangleMorph new extent: 50@20; color: Color red. rect2 := RectangleMorph new extent: 50@20; color: Color blue. rect3 := RectangleMorph new extent: 50@20; color: Color green. contener addMorph: space1; addMorph: rect1 ; addMorph: space2; addMorph: rect2; addMorph: space3; addMorph: rect3; addMorph: space4; openInWorld.
Cordialement,
-- Frédéric