JSL-LayoutausrichtungGibt es eine Möglichkeit, ein Element entweder links oder rechts einer HListBox auszurichten?
Grundsätzlich möchte ich eine Vorlage für Anwendungen mit einem „V-Listenfeld“ erstellen, das in einem „H-Listenfeld“ verschachtelt ist.
Die VListBox (roter Text) wird standardmäßig auf der linken Seite ausgerichtet. Wenn ich mein Logo hinzufüge, wird es wie gezeigt natürlich auch auf der linken Seite ausgerichtet.

Ich möchte jedoch, dass das Logo an der rechten Seite innerhalb der übergeordneten HLISTBOX ausgerichtet wird.

Beachten Sie, dass ich zur Aufrechterhaltung der Anwendungsbreite a verwende SpacerBox(size(1200, 0)) direkt über der HListBox.
Prost, Troy
MassenanpassungBetreff: JSL-LayoutausrichtungToller Vince. Dies funktionierte perfekt für alle Titelbreiten.
Betreff: JSL-LayoutausrichtungHallo Jarmo, ich habe auch versucht, die Größe der Spacerbox zu berechnen. Da sich jedoch die Titelbreite ändern kann (in diesem Fall „Boilerplate-Vorlage“), muss ich das berücksichtigen. Dazu müssen Sie die Anzahl der Zeichen im Titelnamen sowie die Schriftgröße kennen und die Breite ermitteln. Ich verwende ein allgemeines Verhältnis von Höhe zu Breite von 0,6 oder 0,7 und es verschiebt das Logo im Allgemeinen ausreichend nach rechts ... aber nicht „sauber“ und konsistent an derselben Stelle und nicht „rechts“ ausgerichtet
Es ist jedoch gut genug für eine Reihe von Titelbreiten.
Ich hatte auf einen einfacheren Satz von Ausrichtungsoptionen gehofft, ähnlich denen, die beispielsweise in CSS vorhanden sind.
Ich werde auch Vinces Vorschlag zur Verwendung von „wertlosen“ Abstandshaltern ausprobieren, um zu sehen, wie das funktioniert.
Danke für die Antworten Leute.
myToolWidth = 800;
myFontScale = 0.7;
myHeading1 = textBox(myScriptName, << fontColor("red"), << setFontSize(24), << setFontStyle("bold"), <<SETWRAP></SETWRAP>
Beispiele für verschiedene Titelbreiten und Berechnung der Sacerbox basierend auf der Schriftgröße und der Anzahl der Zeichen im Titel.

Betreff: JSL-LayoutausrichtungOhne Angabe einer Größe habe ich das Gefühl, dass die Ränder des Rahmens verschwinden, aber das lässt sich mit der Polsterung höchstwahrscheinlich recht einfach beheben
Names default to here(1);
nw = New Window("Example",
bp = Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
<< Padding(Left(5), Top(0), Right(5), Bottom(5)),
vlb = V List Box(
Spacer Box(size(1200,0)),
H List Box(
V List Box(TextBox("test"), TextBox("test2")),
sb = Spacer Box(),
logo = Icon Box("JMPLogo")
)
)
)
);Betreff: JSL-LayoutausrichtungWenn Sie der Spacerbox einfach keine Größe zuweisen, müssen Sie die Größe nicht ändern.Es versucht einfach, so viel Platz wie möglich zu füllen.Bei mehreren Spacerboxen im selben übergeordneten Element wird es meiner Meinung nach nur gleichmäßig aufgeteilt.
Names default to here(1);
nw = New Window("Example",
Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
vlb = V List Box(
Spacer Box(size(1200,0)),
H List Box(
V List Box(TextBox("test"), TextBox("test2")),
sb = Spacer Box(),
logo = Icon Box("JMPLogo")
);
)
)
);
Betreff: JSL-LayoutausrichtungIch glaube, ich habe etwas Ähnliches gemacht, inspiriert von Ihrer Präsentation Ein strukturierter Ansatz zur Programmierung mit JSL zum Erstellen realer, skalierbarer Anwendungen (2019-EU-30MP-098) und am Ende habe ich auf die Verwendung einer Abstandsbox zurückgegriffen und deren Größe basierend auf der Logobreite angepasst:</CODE></P><PRE><CODE class=" language-jsl">Names Default To Here(1);
New Window("Example",
Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
vlb = V List Box(
Spacer Box(size(1200,0)),
H List Box(
V List Box(TextBox("test"), TextBox("test2")),
sb = Spacer Box(Size(0,0)),
logo = Icon Box("JMPLogo")
);
)
)
);
nw = New Window("Example",
Border Box(Left(10), Right(10), Top(10), Bottom(10), Sides(15),
vlb = V List Box(
Spacer Box(size(1200,0)),
H List Box(
V List Box(TextBox("test"), TextBox("test2")),
sb = Spacer Box(Size(0,0)),
logo = Icon Box("JMPLogo")
);
)
)
);
borderBoxoffset = 24;
sb << Set Size(1200-borderBoxoffset-(logo << get size)[1],0);
Show(nw << get width());