Hola. Me pregunto si hay un método conveniente para que un cuadro de botones sepa de alguna manera dónde se encuentra dentro de un cuadro de alineación. Mis detalles:
JMP Pro 16.2.0
Tengo un script que crea una ventana con un cuadro LineUp. En cada celda, hay un cuadro de botón en el que quiero realizar una acción diferente, según la columna en la que aparece el botón. Por ejemplo:
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);Si ejecuto el script tal como está, obtengo:

Pero cuando hago clic en cualquiera de los botones, aparece el error:
"Rango de subíndice en acceso o evaluación de 'lista2[/*###*/i]', lista2[/*###*/I]"
Entiendo este error porque no hay forma de que el cuadro de botones recuerde el valor de "i" cuando se ejecuta. Mi pregunta: ¿hay algún método que pueda usar que permita que el cuadro del botón se "identifique a sí mismo" donde se encuentra en el cuadro de alineación cuando se presiona, y use ese valor como el índice list2 en el script del botón?
Actualmente estoy usando JSL Quotes y el comando Substitute para crear los botones. En ese caso, escribo el contenido del bucle For como una cotización JSL y sustituyo el valor de i, luego Eval (Parse ()). Sin embargo, esto es torpe, y me pregunto si hay una mejor manera, como un comando "bb << Obtener ubicación" o "bb << Contar hermanos". Estos comandos no existen, por supuesto, pero ¿quizás haya otra técnica?
¡Gracias!