버튼 상자 목록 - 방금 어떤 버튼을 클릭했나요?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />저는 아래와 같이 창 안에 정렬된 버튼 상자 목록을 만들고 있습니다(스크립트가 실제로 실행될 때까지 버튼 상자가 몇 개나 될지 모르겠습니다).분명히 버튼 중 하나를 클릭하면 작업을 수행하는 데 필요합니다.그러나 해당 동작은 버튼의 수에 따라 달라집니다. 따라서 어떤 버튼을 클릭했는지 알아야 합니다. 그리고 분명한 사실을 간과하지 않는 한 이를 판단하는 쉬운 방법을 찾을 수 없습니다.누구든지 내가 어떻게 할 수 있는지 말해 줄 수 있나요?
Expr_Do_Something = 특급 ( /* 어떤 버튼을 눌렀는지 알려주려면 여기에 무엇을 입력해야 합니까? */ ) ;
루브 = 라인업 상자 ( ncol ( 4 )) ;
~을 위한 ( 나 = 1 , 나 <= 12 , 나 ++, 루브 << 추가 ( 버튼 상자 ( "버튼" || 숯 ( 나 ) , Expr_Do_Something )) ) ;
뉴 = 새창 ( "시험" , 루브 ) ;
불행히도 내가 선택한 항목을 단순히 반환하는 콤보 상자와 같은 다른 컨트롤로는 이 작업을 수행할 수 없는 이유가 있습니다.나에게 정말로 필요한 것은 "현재 활성 버튼() << 버튼 이름 가져오기" 명령과 같은 것 같지만 그런 명령은 없다고 가정합니다. 맞습니까?
제안을 받아주셔서 감사드립니다.
[각주: 저는 몇 년 전에 "Volf", "Stig"와 저 사이에 있었던 관련 토론을 발견했습니다. https://communities.sas.com/message/42855#42855 , 그러나 이에 대한 다른 접근 방식이 있을 경우를 대비해 질문을 열어 두겠습니다.]
메시지 편집자: David Q/R
Re: 버튼 상자 목록 - 방금 어떤 버튼을 클릭한 걸까요?expr_do_something을 호출하기 전에 변수 할당을 추가하고, expr_do_something 내부에서 이 변수를 확인하면 됩니다.
Expr_Do_Something= 표현(/* 여기에 무엇을 입력하면 내가 어떤 버튼을 눌렀는지 알 수 있을까요? */);
그만큼= 라인업박스(엔콜(4));
~을 위한(i=1, i<=12, i++,lub << append ( 버튼 상자 ( "버튼 " || 숯 ( i , which_button = i; Expr_Do_Something )));
nw = 새 창 ( "테스트" 또는 ) ;
Re: 버튼 상자 목록 - 방금 어떤 버튼을 클릭한 걸까요?어느 버튼을 클릭하든 which_button은 동일해야 합니다(이 경우 13).
나는 더 간단한 방법이 있어야 한다고 "느끼지만", 내가 찾은 유일한 해결책은 문자열 조작과 lub< 구문 분석을 통한 것입니다.
뭔가를 하다 = "print(lub[버튼상자(^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)))));