[Squeak-fr] Re: [TableLayout] Peut-on faire des tableaux avec ceLayout ?

ALR alr.dev at free.fr
Mar 30 Sep 21:53:29 CEST 2003


En relisant mon post je viens de me rendre compte le formatage est pas
terrible
et que certains bouts de code ont été un peu "traduits" par l'antispam
gmane:

Remplacer _AT_ par le symbole qui va bien (le arobase)

... la 3 ou 4eme ligne
 listDirection: #topToBottom ; cellPositioning: #topLeft ;
extent:200_AT_150.

... et vers la fin ...
  r addMorph: cell fullFrame: (LayoutFrame fractions: ( c - 1 * 0.25 _AT_ 0
extent: 0.25 _AT_ 1 )).



"ALR" <alr.dev at free.fr> a écrit dans le message de
news: blchum$pov$1 at sea.gmane.org...
> Salut
>
> (Chantal) la désous  un bout de code si ca peut t'aider  :o)
> Mets le ds un wokspace, selectionne en entier (C-A)  et évalues.
>
> Le TableLayout ne peut pas garantir la même taille pour toutes les lignes,
> le layout
> proportionnel est mieux pour cela.
>
> Est cequ'y a qqu'un qui a écrit-refléchit-..??##**..- sur un layout plus
> sioux, style gridbalyout de java (mais en + simple :-))
> qui éviterait d'imbriquer douze millions de layouts et morphs pour faire
un
> écran de saisie à 10 champs?
>
>
> cordialement,
> Alain
>
>
>
> | t |
> " le morph principal rectangulaire, arrangé avec un tablelayout de haut
vers
> le bas.
> le resizing est #spaceFill pour occuper tt l'espace du morph"
> t _ RectangleMorph new beTransparent ; borderWidth: 0;
>  layoutPolicy: TableLayout new; hResizing: #spaceFill; vResizing:
> #spaceFill;
>  listDirection: #topToBottom ; cellPositioning: #topLeft ;
extent:200 at 150.
>
> "Ajouter 4 lignes"
> 1 to: 4 do: [ :l | | r |
>
>  "la ligne est un morph arrangé avec un layout proportionel, les cellules
> seront
>  ajoutées avec un LayoutFrame qui indiquera la position ds la ligne : 1/4
en
> largeur, 1 en hauteur"
>  r _ RectangleMorph new beTransparent ;  borderWidth: 0;
>    layoutPolicy: ProportionalLayout new ;
>    hResizing: #spaceFill ; vResizing: #spaceFill.
>
>  " ajout de la ligne au tableau"
>  t addMorphBack: r.
>
>  " ajout de 4 cellules à la ligne"
>  1 to: 4 do: [ :c | | cell text string |
>
>   " la cellule a un layout proportionnel pour pouvoir centrer le texte
(tip
> NedKonz)"
>   cell _ RectangleMorph new borderWidth: 1 ; layoutPolicy:
> ProportionalLayout new ;
>        borderStyle: (BorderStyle raised width: 2).
>   string _ ''.
>   (l = 1 and: [ c = 1 ]) ifTrue: [ string _ 'x'].
>   (l = 1 and: [ c > 1 ]) ifTrue: [ string _ 'e', c asString ].
>   (l > 1 and: [ c = 1 ]) ifTrue: [ string _ 'e', (l + 2) asString ].
>   text _ StringMorph new contents: string.
>
>   " le textmorph est ajouté à la cellule, centré en lui donnant un offset
> égal à la moité
>   de la largeur et hauteur du texte"
>   cell addMorph: text fullFrame: (LayoutFrame new leftFraction: 0.5
offset:
> text width // -2 ;
>           topFraction: 0.5 offset: text height // -2 ).
>
>   "Ajoute la cellule à la ligne, occupe 1/4 (0.25) de largeur de la ligne
et
> hauteur 1 (100%)"
>   r addMorph: cell fullFrame: (LayoutFrame fractions:
(c-1*0.25 at 0 extent:
> 0.25 at 1)).
>  ].
> ].
>
> t openInWorld.
>
>
> "Alexandre Benoit"
> <alexandre.benoit13 at wanadoo.fr> a écrit dans
le
> message de news: 3F71EE21.1060501 at wanadoo.fr...
> >     Bonjour,
> > Je sais utiliser TableLayout pour aligner verticalement ou
> > horizontalement des Morphs.
> > Mais est-il possible de créer un tableau de Morph autrement qu'en
> > alignant verticalement des Morphs qui sont eux-mêmes des alignements
> > horizontaux de Morph ?
> > Je pose la question par ce que pour moi ça revient pas au même. J'essaye
> > de coder un jeu de logigramme où l'écran est divisé en trois parties.
> > 1) Une matrice de cases noires ou blanches.
> > 2) Une zone d'énoncé au dessus de la matrice avec un énoncé pour chaque
> > colonne.
> > 3) Une zone d'énoncé à gauche de la matrice avec un énoncé par ligne.
> > Les problèmes c'est qu'il faut mettre les énoncés bien en regard avec la
> > matrice. En plus en haut à gauche il y a une zone vide qui décale tout.
> > Schéma :
> > =======
> > Vide e1 e2 e3
> >     e4  x    x    x
> >     e5  x    x    x
> >     e6  x    x    x
> > Si je fais un alignement vertical d'alignements horizontaux j'aurai du
> > mal à faire coïncidé e1 e2 et e3 avec leurs colonnes respectives.
> > Si je fais un alignement horizontal d'alignements verticaux j'aurai du
> > mal à faire coïncidé e4 e5 et e6 avec leurs lignes respectives.
> >
> > Avez-vous une suggestion à me faire ?
> > Remarque j'ai pas envie d'utiliser un truc rigide avec placement "à la
> > main" des sous Morphs comme dans MinesBoard>>adjustTiles par ce que ça
> > supprime la possibilité de tout redimensionné en redimensionnant le
> > Morph par exemple à l'aide du halo.
> > Peut-être ma solution c'est le ProportionnalLayout, mais je connais pas
> > bien ce Layout les tutoriaux parlent surtout de l'autre.
> >
> > Merci de vos suggestions
>
>
>
>


----------------------------------------------------------------------------
----


_______________________________________________
Squeak-fr mailing list
Squeak-fr½51WKytQuJI8mQ4nJOOf3xJsTq8ys+cHZ5vskTnxNA at public.gmane.org
http://lists.squeakfoundation.org/listinfo/squeak-fr





Plus d'informations sur la liste de diffusion Squeak-fr