Question sur ComboBoxJe peux créer des options pour Combo Box avec des astuces contextuelles en utilisant quelque chose comme ça (trouvé ceci expérimentalement) :
Names Default To Here( 1 );
list = {"One" ("This is One"), "Two" ("This is two")};
New Window( "Example",
cb = Combo Box(
list,
selection = cb << GetSelected();
Print( selection );
)
);Mais quand je regarde la sélection, elle n'a que « Un » ou « Deux » à la suite de << Get Selected ».
Deux questions:
1. Quel type de structure de données correspond à la liste ci-dessus ? C'est une liste de quoi ? list[1] me donne exactement "One"("This is one") - est-ce une chaîne, ou qu'est-ce que c'est ?
2. Comment puis-je travailler avec cette liste, disons que s'il s'agissait d'une liste normale comme {"One", "Two"}, je mettrais une partie de script quelque chose comme ceci :
if(
selection == list[1], doThis,
selection==list[2], doThat
);
Mais comment puis-je procéder lorsque des conseils contextuels sont inclus ?
Modélisation statistique avancéeAutomatisation et scriptsÉtudes de consommation et de marchéPartager et communiquer les résultatsRe : Question sur ComboBoxL'index de script montre cette structure pour les chaînes de conseils dans la zone de liste déroulante.Je n'avais jamais réalisé que vous pouviez inclure des info-bulles avec une liste déroulante - une fonctionnalité intéressante.

Vous pouvez créer la "vraie" liste à partir de la liste avec des info-bulles.De plus, je m'abstiendrais d'utiliser "list" comme variable, car c'est une fonction en JSL.
Names Default To Here( 1 );
list_tips = {"One" ("This is One"), "Two" ("This is two")};
New Window( "Example",
cb = Combo Box(
list_tips,
selection = cb << GetSelected();
Print( selection );
)
);
mylist = {};
for (i = 1, i <= nitems(list_tips), i++,
pq = contains(list_tips[i], "(\!"");
mylist[i] = substr(list_tips[i], 1, pq - 1);
);
if (
selection == mylist[1], doThis,
selection == mylist[2], doThat
);
Re : Question sur ComboBoxIl y a peut-être un membre de la communauté qui a une meilleure façon de gérer la structure de la liste déroulante, mais la seule façon pour moi de comprendre comment la gérer est de transformer la liste entière en une chaîne, puis de l'analyser avec le Fonction de mot
Names Default To Here( 1 );
list = {"One" ("This is One"), "Two" ("This is two")};
tipstr1 = word(4,char(list),"\!"");
qui renvoie
"This is One"
Re : Question sur ComboBoxMerci, Jim.
Pas encore très clair – chaque entrée est une chaîne ? Où les citations se sont-elles échappées ?
Et si je veux utiliser la même liste dans une instruction if dans un script pour la combobox, je devrais extraire l'élément lui-même ? Comme:
if(
selection == Word(1, list[1], "\!"()"), doThis,
selection==Word(1, list[2], "\!"()"), doThat
);
Re : Question sur ComboBoxDans votre exemple, List est une liste comportant 2 entrées.
- "Un" ("Ceci est Un")
- "Deux" ("C'est deux")
La zone Combo divise chaque entrée de liste en Item et tipstr.
selection = cb << GetSelected();
renvoie uniquement l'article
Si vous souhaitez que le tipstr soit renvoyé, vous devez utiliser
tipstr = (cb << get items)[cb << Get];