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 Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour, Il y a quelque jours je suis tombé sur un projet E-toy qui explique les menus de la disposition table, Je l'ai mis sur le superswiki après quelques modifications pour le rendre compatible, Curieusement il se charge mais provoquait des erreurs au moment de le sauver. Voici l'adressse: http://ofset.org:8000/super/165 Je pense le traduire, mais pas tout de suite Amitiés -------- Message d'origine-------- De: [hidden email] de la part de Alain Plantec Date: ven. 21/07/2006 16:43 À: Squeak in french / Squeak en français Objet : [Squeak-fr] Re: Positionnement des morphs : Layout et compagnie 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 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 Alain Plantec
Alain Plantec a écrit :
> 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 > > Cependant, j'ai eu besoin de garder la technique des morphs fantomes car mon conteneur a une taille bien définie. En outre, la taille des morphs visibles est potentiellement modifiable ce qui implique de devoir changer le code pour adapter les valeurs de layoutInset et cellInset ; avec les morphs fantomes ce n'est pas nécessaire. Cordialement, -- Frédéric _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |