ボタン ボックス リスト - 今クリックしたボタンはどれですか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />以下に示すように、ウィンドウ内にボタン ボックスを並べたリストを作成しています (実際にスクリプトを実行するまでボタン ボックスの数はわかりません)。明らかに、ボタンのいずれかをクリックすると、アクションを実行する必要があります。ただし、そのアクションはボタンの番号に依存します。そのため、どのボタンをクリックしたかを知る必要があります...そして、明らかな何かを見落としていない限り、それを判断する簡単な方法はわかりません。誰か私にそれを行う方法を教えてもらえますか?
Expr_Do_Something =式( /* ここに何を入力すれば、どのボタンを押したかを知ることができますか? */ ) ;
ルブ=ラインナップボックス( ncol ( 4 )) ;
のために(私= 1 、私<= 12 、私++、ルブ<<追加する(ボタンボックス( "ボタン " ||チャー(私) 、 Expr_Do_Something )) ) ;
新しい=新しい窓( "テスト" 、ルブ) ;
残念ながら、コンボ ボックスのような別のコントロールではこれを実行できない理由があり、選択した項目を返すだけです。本当に必要なのは、「Current Active Button() << get button name」コマンドのようなものだと思われますが、そんなものはないと思いますが、正しいでしょうか?
ご提案をいただきまして誠にありがとうございました。
[脚注: 数年前に「Volf」、「Stig」、そして私自身の間で行われた関連する議論を見つけました。これはこれに役立つかもしれません。 https://communities.sas.com/message/42855#42855ただし、これに対する他のアプローチがある場合に備えて、質問はオープンのままにしておきます]
メッセージ編集者: David Q/R
Re: ボタン ボックス リスト - どのボタンをクリックしたのですか?expr_do_something を呼び出す前に変数代入を追加します。そして、expr_do_something 内でこの変数をチェックします。
何かを行うExpr= 式(/* ここで何を入力すれば、どのボタンを押したかがわかりますか? */);
その= ラインナップボックス(ンコル(4));
のために(i=1, i<=12, i++,lub << append ( ボタンボックス ( "ボタン " || チャー ( i ) , which_button = i; Expr_Do_Something )));
nw =新しいウィンドウ( "テスト" 、または) ;
Re: ボタン ボックス リスト - どのボタンをクリックしたのですか?どのボタンがクリックされたかに関係なく、which_button は同じ (この場合は 13) になると思います。
もっと簡単な方法があるはずだと「感じる」のですが、私が見つけた唯一の解決策は、文字列操作と lub の解析です。
何かをする= "print(lub[Buttonbox(^i^)]< ;
ルブ= ラインナップボックス( N列( 4 ) ) ;
( i = 1 , i <= 12 , i ++, )の場合
評価(
解析(
"lub << append( ボタンボックス( \!" ボタン " || チャー ( i ) || 「\!」 || "、" ||
評価挿入 ( Do_Something ) || 「))」
)
)
);
nw =新しいウィンドウ( 「テスト」 、または) ;
Re: ボタン ボックス リスト - どのボタンをクリックしたのですか?私もそう思っていました。そして、きっと同じようなことをすることになると思います。こういった問題をテキストとして設定してから解析することで解決することがよくあります。ですから、何か明らかなことを見落としていないとわかって安心しました。
本当にありがとう!
Re: ボタン ボックス リスト - どのボタンをクリックしたのですか?これがまだあなたにとって関連があるかどうかはわかりませんが、この問題に対処するより簡単な方法を見つけたと思います。
Expr_Do_Something = expr<STRONG>(</STRONG>this << Get Button Name() <STRONG>)</STRONG>;<BR />lub = lineupbox<STRONG>(</STRONG>ncol<STRONG><SPAN>(</SPAN><SPAN>4</SPAN><SPAN>))</SPAN></STRONG>;<BR />for(i=1, i<=12, i++, lub<< append(Button Box("Button "|| char(i), << set Function(Function({this}, Expr_Do_Something)))));