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 _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
En ajoutant listSpacing: #equal; ça peut aider, mais tu n'as pas la bordure
Hilaire 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 > _______________________________________________ > Squeak-fr mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr > Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Frédéric Ferrère-2
Bonjour Frédéric,
Sur le fond, a ma connaissance il n'y a pas d'autre solution. voici une version peut-etre un peu simplifiée mais qui ne change pas grand chose. | contener rect1 rect2 rect3 vide | contener := AlignmentMorph new <-- TableLayout par défaut color: Color black; layoutInset: 0; <-- espace bords intérieurs hResizing: #shrinkWrap; <-- si tu veux que la dim horizontale soit calculée à partir du contenu 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. vide := (RectangleMorph new extent: 50@20) color: Color transparent. contener addMorph: vide; addMorph: rect1 ; addMorph: (vide veryDeepCopy ) ; addMorph: rect2; addMorph: (vide veryDeepCopy) ; addMorph: rect3; addMorph: (vide veryDeepCopy) ; openInWorld. 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 > _______________________________________________ > Squeak-fr mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr > > _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |