안녕하세요, JMP 커뮤니티 여러분!
저는 창을 생성하고, 전역 변수를 저장하고, 함수를 호출하는 JMP 추가 기능을 개발 중입니다. 단일 인스턴스로 실행할 때는 모든 것이 정상적으로 작동하지만, 사용자가 추가 기능을 두 번 실행하면 두 인스턴스가 동일한 전역 스코프를 공유하게 되어 변수 충돌이 발생합니다(한 창이 다른 창의 상태를 덮어씁니다).
스크립트를 초기화할 때 Names default to here(1)를 사용했고, 심지어 newspace()를 호출하여 새로운 네임스페이스를 만들고 모든 변수를 그 안에 넣었지만 여전히 충돌이 발생합니다. 윈도우 네임스페이스에 대해서는 알고 있지만, 윈도우 외부의 변수와의 충돌도 피하고 싶습니다.
// Launch this script twice — second run breaks the first window
strLabel = "Instance A";
counter = 0;
win = New Window( "Test " || strLabel,
btn = Button Box( "Click me",
counter++;
btn << Set Label( strLabel || " clicked " || Char( counter ) || "x" );
)
);