按鈕框清單 - 我剛剛點擊了哪個按鈕?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在視窗中建立按鈕框的排列清單(在腳本實際運行之前我不知道會有多少個按鈕框),如下所示。顯然,當我單擊任何一個按鈕時,我需要它來執行一項操作。然而,該操作將取決於按鈕的數量 - 所以我需要知道我點擊了哪個按鈕......除非我忽略了一些明顯的東西,否則我看不到一種簡單的方法來確定它。誰能告訴我該怎麼做?
Expr_Do_Something =表達式( /* 我可以在這裡輸入什麼來告訴我按下了哪個按鈕? */ ) ;
盧布=陣容框(恩科爾( 4 )) ;
為了(我= 1 ,我<= 12 ,我++,盧布<<附加(按鈕盒( “按鈕 ” ||字元(我) , Expr_Do_Something )) ) ;
西北=新窗戶( “測試” ,盧布) ;
不幸的是,由於某些原因,我無法使用組合框等不同的控制項來執行此操作,因為它只會返回我選擇的項目。在我看來,我真正需要的是類似“當前活動按鈕()<<獲取按鈕名稱”命令,但我認為沒有 - 我是對的嗎?
非常感謝收到的任何建議。
[註腳:我剛剛發現幾年前「Volf」、「Stig」和我自己之間的相關討論,這可能會對此有所幫助https://communities.sas.com/message/42855#42855 ,但無論如何我都會保留這個問題,以防有其他方法]
訊息編輯者:David Q/R
回覆:按鈕框清單 - 我剛剛點擊了哪個按鈕?我會在呼叫 expr_do_something 之前加入一個變數賦值。然後在 expr_do_something 內部檢查這個變數。
表達式_做_某事= 表達式(/* 我可以在這裡輸入什麼來告訴我按下了哪個按鈕? */);
這= 陣容盒(ncol(4));
為了(i=1, i<=12, i++,lub << append (按鈕框( "按鈕" || 字元 ( i ) ,which_button = i; Expr_Do_Something )));
nw = 新視窗 ( "測試" ,或) ;
回覆:按鈕框清單 - 我剛剛點擊了哪個按鈕?我希望無論單擊哪個按鈕,which_button 都是相同的(在本例中為 13)。
儘管我“感覺”應該有一個更簡單的方法,但我得到的唯一解決方案是通過一些字符串操作和解析 lub<
做某事= 「印刷(lub[Buttonbox(^i^)]< ;
潤滑脂= 陣容框( N 列( 4 ) ) ;
對於( i = 1 , i <= 12 , i ++,
評估(
解析(
“lub << append(按鈕框( \!"按鈕" || 字元( i ) || “\!” || "," ||
評估插入(執行某些操作) || “))”
)
)
);
nw = 新視窗 ( “測試” ,或) ;
回覆:按鈕框清單 - 我剛剛點擊了哪個按鈕?我對此心存疑慮——而且我幾乎肯定會做類似的事情。我經常發現自己解決這類問題的方式是先把它們設定為文本,然後再進行解析,所以知道自己沒有遺漏任何顯而易見的東西,這讓我很安心。
非常感謝!
回覆:按鈕框清單 - 我剛剛點擊了哪個按鈕?我不確定這是否還與你有關,但我認為我找到了一個更直接的解決方法:
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)))));