Le script doit avoir une taille fixe pour les zones de texteSalut,
J'ai besoin de générer une fenêtre dans laquelle le texte beox supérieur a toujours une hauteur fixe, avec une autre zone de texte située en dessous de cette hauteur, etc. 5 zones de texte différentes sont empilées de cette façon. L'idée est que lorsque la fenêtre est affichée, les zones de texte sont toujours dans les mêmes positions indépendamment du texte modifié.
Toute aide grandement appréciée.
Voici mon code actuellement infructueux:
VALconv = 37.795275591;
VALwidth = 6*VALconv;
tb1 = Text Box(STRname);
tb1 << Set Font("Lucida Handwriting",18,"bold");
tb1 << Set Max Size(VALwidth,1.8*VALconv);
tb1 << Set Width(VALwidth);
tb1 << Set Height(1.8*VALconv);
tb1 << Set Wrap(VALwidth);
hb1 = H List Box(tb1);
hb1 << Set Max Size(VALwidth,1.8*VALconv);
hb1 << Set Min Size(VALwidth,1.8*VALconv);
tb2 = Text Box(STRch1);
tb2 << Set Font("Arial",12);
tb2 << Set Max Size(VALwidth,2*VALconv);
tb2 << Set Width(VALwidth);
tb2 << Set Height(2*VALconv);
tb2 << Set Wrap(VALwidth);
hb2 = H List Box(tb2);
hb2 << Set Max Size(VALwidth,2*VALconv);
hb2 << Set Min Size(VALwidth,2*VALconv);
tb3 = Text Box(STRch2);
tb3 << Set Font("Arial",12);
tb3 << Set Max Size(VALwidth,2*VALconv);
tb3 << Set Width(VALwidth);
tb3 << Set Height(2*VALconv);
tb3 << Set Wrap(VALwidth);
hb3 = H List Box(tb3);
hb3 << Set Max Size(VALwidth,2*VALconv);
hb3 << Set Min Size(VALwidth,2*VALconv);
tb4 = Text Box(STRch3);
tb4 << Set Font("Arial",12);
tb4 << Set Max Size(VALwidth,2*VALconv);
tb4 << Set Width(VALwidth);
tb4 << Set Height(2*VALconv);
tb4 << Set Wrap(VALwidth);
hb4 = H List Box(tb4);
hb4 << Set Max Size(VALwidth,2*VALconv);
hb4 << Set Min Size(VALwidth,2*VALconv);
tb5 = Text Box(STRtype);
tb5 << Set Font("Arial",12);
tb5 << Set Max Size(VALwidth,1*VALconv);
tb5 << Set Width(VALwidth);
tb5 << Set Height(1*VALconv);
tb5 << Set Wrap(VALwidth);
hb5 = H List Box(tb5);
hb5 << Set Max Size(VALwidth,1*VALconv);
hb5 << Set Min Size(VALwidth,2*VALconv);
NW = New Window("NW", hb1,hb2,hb3,hb4,hb5);<BR />
Re: Script pour que les zones de texte aient une taille fixeJe ne suis pas sûr de comprendre pourquoi ce code échoue. Veuillez expliquer à quoi vous voulez que le résultat ressemble. Par ailleurs, vous n'avez pas besoin de toutes ces zones de la liste H, car vous ne mettez rien horizontalement à côté des zones de texte. Si vous pensez que la largeur est la même, vous pouvez utiliser LINEUP BOX.

strname = "Hello World";
strch1 = "Fubarski";
strch2 = strch1;
strch3 = strch1;
strtype = "String Type";
VALconv = 37.795275591;
VALwidth = 6*VALconv;
tb1 = Text Box(STRname);
tb1 << Set Font("Lucida Handwriting",18,"bold") << Set Max Size(VALwidth,1.8*VALconv);
tb1 << Set Width(VALwidth) << Set Height(1.8*VALconv) << Set Wrap(VALwidth);
tb2 = Text Box(STRch1);
tb2 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb2 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb3 = Text Box(STRch2);
tb3 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb3 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb4 = Text Box(STRch3);
tb4 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb4 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb5 = Text Box(STRtype);
tb5 << Set Font("Arial",12) << Set Max Size(VALwidth,1*VALconv);
tb5 << Set Width(VALwidth) << Set Height(1*VALconv) << Set Wrap(VALwidth);
NW = New Window("NW", lineup box(ncol(1), tb1,tb2,tb3,tb4,tb5));Re: Script pour que les zones de texte aient une taille fixeSi vous souhaitez que toutes les zones de texte aient la même hauteur, vous pouvez placer une zone de texte de deux lignes (deux LF) à côté de chacune des zones de texte. Essaye ça:
strname = "Hello World";
strch1 = "Fubarski";
strch2 = strch1;
strch3 = strch1;
strtype = "String Type";
VALconv = 37.795275591;
VALwidth = 6*VALconv;
tb1 = Text Box(STRname);
tb1 << Set Font("Lucida Handwriting",18,"bold") << Set Max Size(VALwidth,1.8*VALconv);
tb1 << Set Width(VALwidth) << Set Height(1.8*VALconv) << Set Wrap(VALwidth);
tb2 = Text Box(STRch1);
tb2 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb2 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb3 = Text Box(STRch2);
tb3 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb3 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb4 = Text Box(STRch3);
tb4 << Set Font("Arial",12) << Set Max Size(VALwidth,2*VALconv);
tb4 << Set Width(VALwidth) << Set Height(2*VALconv) << Set Wrap(VALwidth);
tb5 = Text Box(STRtype);
tb5 << Set Font("Arial",12) << Set Max Size(VALwidth,1*VALconv);
tb5 << Set Width(VALwidth) << Set Height(1*VALconv) << Set Wrap(VALwidth);
tb0 = text box("
");
NW = New Window("NW", lineup box(ncol(2), tb1, tb0, tb2, tb0, tb3, tb0, tb4, tb0, tb5, tb0));Re: Script pour que les zones de texte aient une taille fixeDésolé, j'aurais dû être plus spécifique et moins vague.
J'essaie toujours d'obtenir la mise en page exacte comme dans cette image, avec "l'espace blanc" nécessaire pour que le texte 2 commence toujours à 1,8 cm vers le bas si le texte 1 est court, etc.
VALconv est ce que je crois être le rapport de conversion pixel sur cm d'un google rapide.
C’était au début une liste H, car lors d’une itération future, je souhaiterais peut-être mélanger du texte et des images dans une "boîte" de taille fixe (par exemple, 1,8 cm sur 6 cm), mais c’est un désir de ne pas avoir Mon objectif principal est de le faire fonctionner en texte brut en premier.
Re: Script pour que les zones de texte aient une taille fixeUn message Taille fixe est disponible pour TextBox. Peut-être que quelque chose comme ci-dessous pourrait fonctionner pour vous. Remarque: j'ai ajouté des BorderBox afin que vous puissiez voir plus clairement la taille des TextBox.
strname = "Text1";
strch1 = "Text2";
strch2 = "Text3";
strch3 = "Text4";
strtype = "Text5";
VALconv = 37.795275591;
VALwidth = 6 * VALconv;
tb1 = Text Box( STRname );
tb1 << Set Font( "Lucida Handwriting", 18, "bold" ) << Fixed Size( 1, VALwidth, 1.8 * VALconv );
tb2 = Text Box( STRch1 );
tb2 << Set Font( "Arial", 12 ) << Fixed Size( 1, VALwidth, 2 * VALconv );
tb3 = Text Box( STRch2 );
tb3 << Set Font( "Arial", 12 ) << Fixed Size( 1, VALwidth, 2 * VALconv );
tb4 = Text Box( STRch3 );
tb4 << Set Font( "Arial", 12 ) << Fixed Size( 1, VALwidth, 2 * VALconv );
tb5 = Text Box( STRtype );
tb5 << Set Font( "Arial", 12 ) << Fixed Size( 1, VALwidth, 1 * VALconv );
NW = New Window( "NW",
Lineup Box( N Col( 1 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb1 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb2 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb3 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb4 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb5 )
)
);
J'espère que ça aide!
Re: Script pour que les zones de texte aient une taille fixeConstruire quoi @Wendy_Murphrey m'a dit. Je ferai parfois en sorte que les fonctions renvoient des objets prédéfinis comme un faux moyen de sous-classe.
Names Default to Here( 1 );
strname = "Text1";
strch1 = "Text2";
strch2 = "Text3";
strch3 = "Text4";
strtype = "Text5";
Lucida_Textbox = function({text},
{DEFAULT LOCAL},
VALconv = 37.795275591;
VALwidth = 6 * VALconv;
tb = Text Box( text );
tb << Set Font( "Lucida Handwriting", 18, "bold" ) << Fixed Size( 1, VALwidth, 1.8 * VALconv );
return(tb);
);
Arial_Textbox = function({text},
{DEFAULT LOCAL},
VALconv = 37.795275591;
VALwidth = 6 * VALconv;
tb = Text Box( text );
tb << Set Font( "Arial", 12 ) << Fixed Size( 1, VALwidth, 2 * VALconv );
return(tb);
);
tb1 = Lucida_Textbox( STRname );
tb2 = Arial_Textbox( STRch1 );
tb3 = Arial_Textbox( STRch2 );
tb4 = Arial_Textbox( STRch3 );
tb5 = Arial_Textbox( STRtype );
NW = New Window( "NW",
Lineup Box( N Col( 1 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb1 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb2 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb3 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb4 ),
Border Box( Left( 0 ), Right( 0 ), Top( 0 ), Bottom( 0 ), Sides( 15 ), tb5 )
)
);