선택 창을 닫은 후 JMP 속도가 느려짐안녕하세요,
스크립트의 나머지 부분에 사용할 객체를 정의하는 스크립트 시작 시 열리는 창에서 그룹을 선택하도록 사용자에게 알리려고 합니다. 사용자가 버튼 상자를 선택하여 사용하면 잘 작동하지만 창을 닫으면 JMP가 느려지고 마우스 오른쪽 클릭>스크립트 중지 없이는 스크립트 창을 편집할 수 없게 됩니다. 여기서 무엇이 빠졌는지 아는 사람이 있나요?
Names Default to Here (1);
groupsel=Expr(
done = 0;//Track if selection made
nwcurr = New Window("Select Group",
V List Box(
Text Box("Please select a group:"),
rb = Radio Box({"A", "B", "C"}),
Button Box("OK",
// Set the selected currency based on the user's choice
group = rb << Get Selected;
nwcurr << Close Window; // Close the modal window after selection
done = 1; // Mark the selection as done
)
)
);
nwcurr << On Close(
Throw("No selection made. Script stopped."),Stop();
);
// Wait loop until the selection is made
Wait(0.1); // Small wait to reduce CPU usage
while(done == 0, Wait(0.1)); // Loop until 'done' is set to 1
);
Eval(groupsel);자동화 및 스크립팅Re: 선택 창을 닫은 후 JMP 속도가 느려짐창이 닫히면 변수 "done"은 항상 0이므로 While 루프에 갇히게 됩니다.
Re: 선택 창을 닫은 후 JMP 속도가 느려짐이때는 Modal 창을 사용하기에 좋은 때일 수 있습니다. "done" 변수는 필요하지 않습니다.
Names Default To Here( 1 );
groupsel = Expr(
nwcurr = New Window( "Select Group",
<<MODAL></MODAL>
Re: 선택 창을 닫은 후 JMP 속도가 느려짐모달 창을 사용하는 것 외의 다른 옵션은 수행하려는 작업을 OK를 눌렀을 때 실행될 자체 함수/표현식으로 이동하는 것입니다.
Names Default To Here(1);
expr_actions = Expr(
group = rb << Get Selected;
show(group);
);
groupsel = Expr(
nwcurr = New Window("Select Group",
V List Box(
Text Box("Please select a group:"),
rb = Radio Box({"A", "B", "C"}),
Button Box("OK",
expr_actions;
nwcurr << Close Window;
)
)
);
);
Eval(groupsel);
모달은 더 쉽지만, 사용 사례에 따라서는 더 나쁜 사용자 경험을 제공할 수도 있습니다(적어도 제 생각에는요).
Re: 선택 창을 닫은 후 JMP 속도가 느려짐이전 제안 중 하나를 사용하세요. 모달 솔루션을 작성하는 데 도움이 될 수 있는 예는 모달 대화 상자를 참조하세요.
당신이 보고 있는 동작 중 일부는 이 코드 때문입니다:
nwcurr << On Close(
Throw("No selection made. Script stopped."),Stop();
);
OnClose 표현식은 0 또는 1로 평가해야 합니다. 0(false)은 창을 닫을 수 없음을 의미하고 1(true)은 창을 닫는 것을 완료할 수 있음을 의미합니다. throw에서 무슨 일이 일어나는지 잘 모르겠지만, 아마도 좋은 일은 일어나지 않을 것입니다. 값이 반환되지 않습니다. stop()은 JMP에서 전혀 보이지 않습니다. 사용되지 않는 추가 매개변수인 듯합니다. 문장 사이에 세미콜론을 사용합니다.