안녕,
연결된 메뉴 스크립트가 있는 개요 상자가 있습니다. 해당 메뉴 스크립트에는 여러 메뉴 항목이 있으며 그 중 일부에는 하위 메뉴가 있습니다.많은 하위 메뉴에는 선택될 때 체크 표시를 하고 동시에 모든 대안을 선택 취소하려는 상호 배타적인 옵션 세트가 포함되어 있습니다(예: 내 하위 메뉴가 테이블의 소수점 이하 자릿수를 설정하는 경우 1, 2, 3 또는 4로 설정한 다음 "2"를 선택하면 "2" 항목을 선택하고 "1", "3" 및 "4" 항목의 선택을 취소합니다.
나는 여전히 이 응용 프로그램을 개발 중이므로 새 옵션을 추가하거나 기존 옵션을 수정함에 따라 실제 메뉴 구조가 지속적으로 변경됩니다. 따라서 위의 확인/확인 취소 프로세스를 하드 코딩하는 것을 피하고 싶습니다. 대신 항목을 클릭한 하위 메뉴를 자동으로 식별한 다음 동일한 하위 메뉴 내의 모든 눈금을 지우고 방금 클릭한 항목을 확인하는 작은 기능을 실행하고 싶습니다.내가 방금 클릭한 메뉴 항목을 알려주는 스크립트를 얻을 수 있다면 "<< get submenu" 속성을 사용하여 이 작업을 수행할 수 있습니다.
나 ~할 수 있었다 각 항목에 대한 계수 변수를 설정하고(즉, 첫 번째 메뉴 항목에 대해 "M=1", 두 번째 항목에 대해 "M=2", 세 번째 항목에 대해 "M=3" 등) 다음 값을 참조하십시오. 내가 방금 클릭한 항목을 알아내려면(아래의 작은 예에서 문제를 설명하기 위해 요리한 것처럼) 메뉴가 표시될 때마다 모든 할당을 변경해야 합니다. 편집 - 오히려 운동의 대상을 무효화합니다.
이것이 가능합니까? 이 정보를 제공하는 개요 상자의 속성을 볼 수 없습니다.
많은 감사
expr_POD = 특급 ( ~을 위한 (나는= 1 , 나는<= 4 , i++, My_OutlineBox << 메뉴 항목 상태 설정 ( 1 +나, 0 )); My_OutlineBox << 메뉴 항목 상태 설정 ( 1 +포드, 1 ));
expr_Rec = 특급 ( ~을 위한 (나는= 1 , 나는<= 삼 , i++, My_OutlineBox << 메뉴 항목 상태 설정 ( 6 +나, 0 )); My_OutlineBox << 메뉴 항목 상태 설정 ( 6 +녹음, 1 ));
expr_Doc = 특급 ( ~을 위한 (나는= 1 , 나는<= 4 , i++, My_OutlineBox << 메뉴 항목 상태 설정 ( 10 +나, 0 )); My_OutlineBox << 메뉴 항목 상태 설정 ( 10 + 박사님, 1 ));
My_OutlineBox = 아웃라인박스 ( "내 OutlineBox" ,
텍스트 상자 ( "창문에 있는 물건" ),
<< 세트 메뉴 스크립트 (
{
"소수점" , " " ,
"1 포드" , 포드= 1 ; expr_POD,
"2 포드" , 포드= 2 ; expr_POD,
"3 포드" , 포드= 삼 ; expr_POD,
"4 포드" , 포드= 4 ; expr_POD,
"받는 사람" , " " ,
"알앤디" , 기록= 1 ; expr_Rec,
"마케팅" , 기록= 2 ; expr_Rec,
"사전판매" , 기록= 삼 ; expr_Rec,
"문서 형식" , " " ,
"콰르토" , 문서= 1 ; expr_Doc,
"멍청이" , 문서= 2 ; expr_Doc,
"A4" , 문서= 삼 ; expr_Doc,
"태블릿" , 문서= 4 ; expr_Doc,
"이메일" , 문서= 5 ; expr_Doc
}
),
/* 하위 메뉴 정의 */
<< 하위 메뉴 설정 ( 1 , 4 ),
<< 하위 메뉴 설정 ( 6 , 삼 ),
<< 하위 메뉴 설정 ( 10 , 5 ),
/* 기본값 설정 */
<< 메뉴 항목 상태 설정 ( 2 , 1 ),
<< 메뉴 항목 상태 설정 ( 7 , 1 ),
<< 메뉴 항목 상태 설정 ( 11 , 1 )
);
새창 ( "NW" ,
My_OutlineBox
);
감사합니다 Justin - 그렇게 하겠습니다.나는 과거에 문제를 해결하는 속성을 간과했다는 사실을 몇 번 발견했습니다. 문제에 대한 관련성을 인식하지 못했기 때문입니다. 이 기회에.
많은 도움 주셔서 감사합니다
맞습니다. <
위와 같이 3개의 다른 표현식을 사용하는 대신 3개의 매개변수가 있는 함수를 사용하는 것이 좋습니다. 함수를 사용하면 불필요한 변수가 필요 없고 나중에 새 메뉴 항목을 추가하는 프로세스가 간소화되고 코드 중복이 줄어듭니다. 자세한 내용은 아래 내 예를 참조하십시오.
setMenuChecked = Function(
{
startIndexForSubgroup, // The index of the first menu item for this subgroup
endIndexForSubgroup, // The index of the last menu item for this subgroup
indexOfSelectedItem // The index of the item that was just selected
},
{i},
For( i = startIndexForSubgroup, i <= endIndexForSubgroup, i++,
My_OutlineBox << set menu item state( i, 0 )
);
My_OutlineBox << set menu item state( indexOfSelectedItem, 1 );
);
My_OutlineBox = Outline Box( "My OutlineBox",
Text Box( "Some stuff in the window" ),
<<SET menu="" script=""></SET>