창을 닫으려면 로컬 변수가 필요합니다.여러 창을 생성하고 닫기 버튼을 각각 개별적으로 닫으려고합니다.그러나 예상대로 작동하지 않습니다.코드를 2x 실행 해보십시오. 닫기 버튼은 한 창에서 작동하지만 다른 창에서는 작동하지 않습니다.
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
names default to here(1);
nw = new window("Test",
text box(::a),
text box(::b),
button box("Close", nw << close window)
);


제도법스크립팅Re : 창을 닫으려면 로컬 변수가 필요합니다.내가 처리하는 방법은 다음과 같습니다.
::a = "The quick fox jumped over the brown log";
::b = "Hello World I want to get off now";
Names Default To Here( 1 );
Eval(
Substitute(
Expr(
__nw__ = New Window( "Test",
Text Box( ::a ),
Text Box( ::b ),
Button Box( "Close", __nw__ << close window )
)
),
Expr( __nw__ ),
Parse( "nw" || Char( Random Integer( 1, 999999999 ) ) )
)
);Re : 창을 닫으려면 로컬 변수가 필요합니다.작동하는 Jim에게 감사합니다.하지만 두 가지 질문이 있습니다.
1. 왜 당신은 내 것이 아니라 작동합니까?
2. __nw__를 임의의 정수에 할당하는 것처럼 보이지만 이미 "창 핸들"입니다.그것은 창 핸들 값을 재정의하지 않습니까?
보너스 질문으로 왜 모든 이중 밑줄이 있습니까?코드가 없으면 잘 작동합니다.
Re : 창을 닫으려면 로컬 변수가 필요합니다.두 번째 스크립트를 실행하면 "nw"변수가 최신 창을 가리 키도록 변경되므로 코드가 실패합니다.기본적으로 문제는 "Here"네임 스페이스가 스크립트 창에서 실행되는 각 인스턴스가 아니라 스크립트 창과 연결되어 있다는 것입니다.내 코드는 코드가 실행될 때마다 새 변수를 만듭니다.
이중 밑줄은 내가 사용하는 표준 일뿐입니다.코드가 어떻게 작동하는지 읽고 이해하는 데 도움이된다는 것을 알게되었습니다.