如何从多个项目的数字编辑框中返回值嗨 JMPers,
关于数字编辑框返回值的一些问题。
我已经提到了其他帖子(组合号码框,在新窗口中收集所有数据),并尝试创建我的代码。
因为我有很多项目要赋值,所以在每个项目中输入数字对我来说不切实际。
所以“New Window”和“Append”用于处理许多项的返回值。
最终代码只返回默认值 (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 中以确保正确的执行顺序。
我想到了 2 个选项,
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 );
)
);回复:如何从多个项目的数字编辑框中返回值谢谢 Jim,这真是个好方法,可以帮助我更多地了解“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>