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 ensuite, 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 est 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 si c'était une liste normale comme {"One", "Two"}, je mettrais dans une partie de script quelque chose comme ceci :
if(
selection == list[1], doThis,
selection==list[2], doThat
);
Mais comment puis-je le faire lorsque j'ai inclus des astuces contextuelles ?
ScriptRe: Question sur ComboBoxDans votre exemple, List est une liste qui a 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'élément
Si vous voulez que le tipstr soit renvoyé, vous devez utiliser
tipstr = (cb << get items)[cb << Get];
Re: Question sur ComboBoxMerci Jim.
Toujours pas très clair - chaque entrée est une chaîne ? Où les guillemets se sont échappés ?
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 ComboBoxIl y a peut-être un membre de la communauté qui a une meilleure façon de gérer la structure de la liste Combo Box, mais la seule façon dont j'ai compris comment y faire face est de transformer toute la liste 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 revient
"This is One"