如何从许多项目的数字编辑框中返回值嗨 JMP 们,
关于数字编辑框返回值的一些问题。
我参考过其他帖子(组合号码框,在新窗口中收集所有数据),并尝试创建我的代码。
由于我有许多项目需要赋予价值,因此在每个项目中输入数字对我来说并不实际。
因此,“新窗口”和“追加”用于处理许多项目的返回值。
最终代码只返回默认值(1)而不是我键入的数字。
你能帮忙检查一下我的代码中哪些步骤是错误的吗?
感谢您在高级方面的大力帮助。
list = {"A", "B", "C","D","E","F","G"};
val={};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK", Set Script( nw< )
);
show(val);
回复:如何从多个项目的数字编辑框中返回值您是正确的,即使不单击“确定”,JMP 也会继续处理。 除非你做了两件事中的一件。 使您的显示窗口成为“模态”窗口
nw = New Window("Test Window", Modal, ....................);
这将迫使处理等待窗口被清除。
或者
将您的代码构造为 Functions() 或表达式、Expr(),除非从您的窗口代码或另一个 Function() 或 Expr() 明确调用,否则它们不会执行其中的代码
回复:如何从多个项目的数字编辑框中返回值嗨吉姆,
真的非常感谢专业的回复。
我根据您的所有建议编写了我的代码,但我发现了有关顺序执行的问题(即使我还没有单击“确定”,JSL 也会执行以下所有代码)。
所以我必须将以下所有代码放入Set Script中以确保正确的执行顺序。
我脑子里有两个选择,
1)这个方法可以用在<
2)wait(0)在这里起作用吗?我应该把它放在代码中的哪里?
这是我的简化代码来显示我的问题,我将 2 行标记为蓝色以显示我所做的事情,
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example",
v = V List Box(),
Button Box( "OK",
Set Script(
nw << close window;
New Window( "result", < );
)
)
);
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
exq = Number Edit Box(
1,
10,
<nw2 = New Window( "fake result", <
回复:如何从多个项目的数字编辑框中返回值这是示例的修改版本,摘自
帮助==>脚本索引==>TextEditBox==>设置函数
这说明了“{this}”的目的
Names Default To Here( 1 );
New Window( "Example",
xx = Text Edit Box( "pw?" ),
Text Box( "" )/* here's the sibling box, waiting to show the pw */
);
xx << SetFunction(
Function( {this},
this << passwordStyle( 1 );/* hide my display*/ /* put my password into my sibling's display */
(this << sib) << settext( this << getText );
)
);回复:如何从多个项目的数字编辑框中返回值谢谢吉姆,这确实是一个好方法,帮助我更多地了解“Expr”、“substitute”和“Eval”。
对于 << SetFunction ( Function ( {this} , val[i] = exq << get ) ),
我想我可以把“这个”拿走并留下一个空括号。 (我已经尝试过了,仍然有效)
支架空着会有潜在风险吗?
谢谢。
回复:如何从多个项目的数字编辑框中返回值您遇到的问题是,您假设“exq”的每个单独规范都保留在唯一的实例中。 实际发生的情况是,它们被写在彼此之上。 下面的代码分隔了实例。
Names Default To Here( 1 );
list = {"A", "B", "C", "D", "E", "F", "G"};
val = {};
nw = New Window( "example", v = V List Box(), Button Box( "OK", Set Script( nw << close window ) ) );
For( i = 1, i <= N Items( list ), i++,
Insert Into( val, 1 );
(v << append(
Outline Box( "",
H List Box(
Text Box( list[i] ),
Eval(
Substitute(
Expr(
__exq__ = Number Edit Box(
1,
10,
<<SETFUNCTION></SETFUNCTION>