JSL: So ändern Sie die Breite eines KombinationsfeldsHallo zusammen,
Ich arbeite an einem JSL-Code, in dem einige Kombinationsfelder in einer V List Box(); Die Listen für die Kombinationsfelder haben alle unterschiedliche Zeichenlängen, aber ich möchte, dass die Kombinationsfelder alle die gleiche Breite haben.
Der normale Aufruf <
Ich habe versucht, dies nachzuschlagen, aber die meisten Diskussionen drehen sich um Textboxen() oder andere ähnliche Elemente, nicht um Kombinationsboxen().
Alle Vorschläge helfen.
Danke!,
DS
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungVerbraucher- und MarktforschungVersuchsplanungMassenanpassungBetreff: JSL: So ändern Sie die Breite eines KombinationsfeldsDas Kombinationsfeld reagiert tatsächlich auf die Meldung „<
Names Default To Here( 1 );
New Window( "test", a = Combo Box( {"i"} ) );
Show( a << Get Width ); //31
a << Set Width( 100 );
Show( a << Get Width ); //100
Wait( .1 );
Show( a << Get Width ); //31Das breitere Kombinationsfeld, das Sie sehen, wenn die Liste nur {"i"} enthält, scheint ein Problem mit dem Betriebssystem zu sein.Wie Sie sehen, erhalte ich unter Windows 11 eine Breite von 31.
Betreff: JSL: So ändern Sie die Breite eines KombinationsfeldsSchnelle Korrektur meines Beitrags. Im „PPS“ habe ich über den Befehl „Breite festlegen“ gesprochen, nicht über den Befehl „Breite abrufen“. Get Width scheint bei Kombinationsfeldern zu funktionieren. Entschuldigen Sie die Verwirrung.
Betreff: JSL: So ändern Sie die Breite eines KombinationsfeldsHat jemand eine Idee, wie man ein Kombinationsfeld schmaler statt breiter machen kann? Selbst wenn ich die Elemente in meiner Liste nur auf einzelne Zeichen ändere, scheint die Breite des Kombinationsfelds einen eigenen Sinn zu haben:
Names Default To Here(1);
New Window("Example",
cb = Combo Box({"i"})
);
cb << Get Width;Im obigen Beispiel beträgt die Breite 107. Das ist meiner Meinung nach viel zu groß für einen einzelnen Buchstaben. Aber wenn ich der Liste ein „j“ hinzufüge, sodass die Liste {“i“, „j“} ist, erhält die Breite tatsächlich schmaler und geht zu 71. Weiß jemand warum?
PS: Ich verwende JMP Pro 17.1.0 und MacOS Ventura 13.4.1.
PPS: antworten auf @txnelson : Frage zum Scripting-Index... Der Befehl „<< Breite abrufen“ ist nicht unter „Elementmeldungen“ für das Kombinationsfeld, aber unter „Gemeinsam genutzte Elementmeldungen“ aufgeführt. Das hat mich oft verwirrt, denn es scheint darauf hinzudeuten, dass der Benutzer in der Lage sein sollte, << Breite abrufen auf ein Kombinationsfeld anzuwenden. Aber wie hier besprochen, scheint das nicht der Fall zu sein. Wenn die Befehle in diesem Abschnitt „Shared Item Messages“ nicht unbedingt im Anzeigefeld verwendet werden können, welche Bedeutung steckt hinter diesem Abschnitt (ich frage im Ernst ... ich bin wirklich neugierig). Danke!
Betreff: JSL: So ändern Sie die Breite eines KombinationsfeldsHallo @ErraticAttack Und @txnelson ,
Vielen Dank für Ihr schnelles Feedback. Ich habe die Escape-Zeichen ausprobiert, aber sie funktionieren aufgrund der unterschiedlichen Zeichenlänge der verschiedenen Kombinationsfelder und ihrer Einträge nicht immer wie erwartet. Am Ende bin ich mitgegangen @ErraticAttack 's Lösung, da die Lineup Box()-Umgebung perfekt funktionierte. Jetzt gehe ich zurück und ändere meinen anderen Code, weil ich verschachtelte H List Box()- und V List Box()-Umgebungen mit Spacer Box(Size())-Einträgen verwendet habe, um die Ästhetik der GUI zu bearbeiten. Die Lineup Box() funktioniert großartig und ist ziemlich einfach und intuitiv.
Danke für die Hilfe!,
DS
Betreff: JSL: So ändern Sie die Breite eines KombinationsfeldsDie eingebaute LineupBox ist genau für diesen Fall konzipiert, Beispiel:
Names Default To Here( 1 );
New Window( "Example",
Lineup Box( N Col( 1 ), Spacing( 0, 2 ),
Spacer Box( Size( 120, 0 ) )
,
cb = Combo Box(
{"One", "Two", "Three"},
selection = cb << GetSelected();
Print( "Selected: " || selection );
)
,
cb2 = combo box( {"a","b","c"} )
);
);Betreff: JSL: So ändern Sie die Breite eines KombinationsfeldsDer Skriptindex für ComboBox zeigt alle Meldungen an, die eingestellt werden können.Breite gehört nicht dazu.Allerdings kann ich den Bedarf durch die Einbettung nicht druckbarer Zeichen decken.Hier ist ein Beispiel
Names Default To Here( 1 );
New Window( "Example",
cb = Combo Box(
{"One\!t", "Two", "Three"},
selection = cb << GetSelected();
Print( "Selected: " || selection );
),
cb2 = combo box( {"a \!t","b","c"})
);
