やあ。 ボタンボックスがラインナップボックス内のどこにあるかを何らかの方法で知るための便利な方法があるかどうか疑問に思っています。 私の詳細:
JMP プロ 16.2.0
LineUp ボックスを含むウィンドウを作成するスクリプトがあります。 各セルには、ボタンが表示される列に基づいて、異なるアクションを実行したいボタン ボックスがあります。 例えば:
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);スクリプトをそのまま実行すると、次のようになります。

しかし、いずれかのボタンをクリックすると、次のエラーが表示されます。
「'list2[ /*####*/i]' , list2[/*####*/I] のアクセスまたは評価における添字範囲」
ボタンボックスが実行されたときに「i」の値を呼び出す方法がないため、このエラーを理解しています。 私の質問:ボタンボックスが押されたときにラインアップボックスのどこにあるかを「自己識別」し、その値をボタンスクリプトのlist2インデックスとして使用できるようにする方法はありますか?
私は現在、ボタンを作成するために JSL の引用符と Substitute コマンドを使用しています。 その場合、For ループの内容を JSL Quote として記述し、i の値を代入してから、Eval(Parse()) を代入します。 これは不格好ですが、「bb << Get Location」または「bb << Count Siblings」コマンドのような、より良い方法があるかどうか疑問に思っています。 もちろん、これらのコマンドは存在しませんが、別の手法があるのではないでしょうか?
ありがとう!