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);自动化和脚本回复:JMP 在关闭选择窗口后速度减慢如果窗口刚刚关闭,则变量“done”将始终为 0,因此您将陷入 While 循环中。
回复:JMP 在关闭选择窗口后速度减慢这可能是使用模态窗口的好时机。您不需要“done”变量。
Names Default To Here( 1 );
groupsel = Expr(
nwcurr = New Window( "Select Group",
<<MODAL></MODAL>
回复:JMP 在关闭选择窗口后速度减慢或者除了使用模态窗口之外的其他选项,就是将您想要执行的操作移动到它们自己的函数/表达式中,这些函数/表达式将在按下“确定”时执行
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);
模态比较简单,但根据使用情况,它会提供更差的用户体验(至少在我看来)。
回复:JMP 在关闭选择窗口后速度减慢使用先前的建议之一。请参阅“模态对话框”中的示例,这些示例可能有助于编写模态解决方案。
您看到的某些行为是由于以下代码造成的:
nwcurr << On Close(
Throw("No selection made. Script stopped."),Stop();
);
OnClose 表达式需要计算为 0 或 1;0(false)表示不允许关闭窗口,1(true)表示允许窗口完成关闭。我不确定抛出会发生什么,但可能不是什么好事;没有返回任何值。JMP 从未见过 stop();它似乎是一个额外的未使用参数。在语句之间使用分号。