Ciao. Mi chiedo se esiste un metodo conveniente per una casella dei pulsanti per sapere in qualche modo dove si trova all'interno di una casella di formazione. Le mie specifiche:
JMP Pro 16.2.0
Ho uno script che crea una finestra con una casella LineUp. In ogni cella, c'è una casella del pulsante che voglio eseguire un'azione diversa, in base alla colonna in cui appare il pulsante. Per esempio:
Names Default to Here(1);
list = {"cat", "dog", "mouse", "kangaroo", "sloth"};
list2 = {"meow", "bark", "squeak", "hop", "zzz"};
lub = LineUpBox(NCol(2), Spacing(5));
For(i=1, i<=NItems(list), i++,
tb = TextBox(list[i]);
bb = ButtonBox(list2[i],
//Insert code for the button to somehow identify which button it is within lub.
Speak(list2[i])
);
lub << Append(tb);
lub << Append(bb);
);
New Window("Test", lub);Se eseguo lo script così com'è, ottengo:

Ma quando faccio clic su uno qualsiasi dei pulsanti, ottengo l'errore:
"Intervallo pedice nell'accesso o nella valutazione di 'list2[ /*###*/i]' , list2[/*###*/I]"
Comprendo questo errore perché non c'è modo per la casella del pulsante di richiamare il valore di "i" quando viene eseguito. La mia domanda: c'è un metodo che potrei usare che consentirebbe alla casella del pulsante di "autoidentificarsi" dove si trova nella casella dell'allineamento quando viene premuto e utilizzare quel valore come indice list2 nello script del pulsante?
Attualmente sto usando JSL Quotes e il comando Substitute per creare i pulsanti. In tal caso scrivo il contenuto del ciclo For come una citazione JSL e sostituisco il valore di i, quindi Eval(Parse()). Questo è goffo però, e mi chiedo se c'è un modo migliore, come un comando "bb << Ottieni posizione" o "bb << Conte fratelli". Questi comandi non esistono ovviamente, ma forse c'è un'altra tecnica?
Grazie!