Hey,
Ich versuche, eine sehr kleine UI-Komponente in JSL zu erstellen, nachdem ich dies einige Jahre lang nicht getan habe, und es fällt mir schwer.
Ich habe eine Liste von Tabellen in einem Listenfeld und möchte eine Beschreibung der Tabelle anzeigen, wenn sie im Listenfeld ausgewählt wird.
Hier ist ein Minimalbeispiel:

tables = {"Table1", "Table2"};
descriptions = {"This is the first table", "This is the second"};
showDescription = Function({},{sel, selIdx, desc},
sel = item_disp_box << Get Selected;
If(Nitems(sel) > 0,
selIdx = loc(tables,sel[1])[1];
desc = descriptions[selIdx];
tb << Set Text(desc);
);
);
nw = new window("Browse Tables",
spacer box(size(0, 5)),
hlistbox(
panelbox("Tables:",
spacer box(size(0, 5)),
item_disp_box = listbox(tables, width(200), nlines(5), max selected(1)),
//item_disp_box << On Something??(showDescription),
),
panelbox("Description of selected table:",
tb = Text Box(""),
),
);
);Wie Sie sehen, habe ich mit einer Funktion experimentiert, die im obigen Code die richtige Beschreibung anzeigt und die gut funktioniert, wenn ich sie manuell ausführe.
Mein Problem ist, dass ich keinen guten Auslöser für diese Funktion für die Listbox finden kann. Ich habe den Skriptindex durchgesehen und kann nur „beim Schließen“ finden.
Gibt es eine einfache Möglichkeit, das zu erreichen, was ich hier suche?
Dank im Voraus,
Daniel
Hier ist das <
Names Default To Here( 1 );
New Window( "Example",
lb = List Box( {"First Item", "Second Item", "Third Item", "Fourth Item"}, width( 200 ), max selected( 2 ), nlines( 5 ) ),
Text Box( "" )
);
lb << Set Function( Function( {thisBox}, (thisBox << sib) << Set Text( Char( thisBox << get selected ) ) ) );Sie haben drei Optionen: Bei Änderung, << Funktion festlegen und << Skript festlegen. Beispiele für all dies finden Sie im Skriptindex (die Beispiele enthalten möglicherweise kein Listenfeld, sollten aber auf ähnliche Weise funktionieren wie die anderen zur Demonstration verwendeten Anzeigefelder). Ich würde höchstwahrscheinlich << Set Function verwenden, da es einen Verweis auf „sich selbst“ bereitstellt (Listbox, die die Funktion aufruft).
Danke euch beiden! Die Set-Funktion funktionierte wie ein Zauber 