如何在不使用变量的情况下从红色三角形菜单中引用轮廓框以下是脚本索引中重新编写的示例:
Names Default To Here( 1 );
ob = Outline Box( "Picker",
{"Copy picture", ob << Copy Picture()},
H List Box( Text Box( "Label:" ), teb = Text Edit Box( Char( 213 ) ) )
);
New Window( "Example",
ob
);
它在红色三角形菜单中添加了一个菜单项,将该框的图片复制到缓冲区。
脚本运行良好。
我的问题是:如果我动态创建大纲框但没有为其分配变量,该怎么办?
如何在没有变量的情况下引用此大纲框?使用关键字“this”或“self”即可。
第二个盒子上的内容如下:
Names Default To Here( 1 );
vb = V List Box(
ob = Outline Box( "Picker",
{"Copy picture", ob << Copy Picture()},
H List Box( Text Box( "Label:" ), teb = Text Edit Box( Char( 213 ) ) )
),
Outline Box( "Picker",
{"Copy picture", this << Copy Picture()},
H List Box( Text Box( "Label number 2:" ), teb = Text Edit Box( Char( 213 ) ) )
);
);
New Window( "Example",
vb
);
脚本索引中有一些关于显示框数量设置函数的很好的例子:
Names Default To Here( 1 );
New Window( "Example",
Button Box( "press me", <<SETFUNCTION></SETFUNCTION>
But in this case we're not setting function, we're setting script, and this syntaxis doesn't work.
So, how do I accomplish this?
<LINGO-LABS id="lingo-labs-825339" slang="en-US" mode="CREATE"><LINGO-LABEL>自动化和脚本</LINGO-LABEL></LINGO-LABS>回复:如何在不使用变量的情况下从红色三角形菜单中引用轮廓框我认为轮廓框菜单脚本没有这样的功能,所以您必须使用其他东西。我想到三个不错的选择:
Names Default To Here(1);
context_example = Context Box(
box:ob1 = Outline Box("Picker",
{"Copy picture1", box:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(213))
)
)
);
eval_example = Outline Box("Picker",
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(612))
)
);
Eval(EvalExpr(
eval_example << Set Menu Script(
{"Copy Picture3", Expr(eval_example) << Copy Picture()}
);
));
nw = New Window("Example",
context_example,
window:ob1 = Outline Box("Picker",
{"Copy picture2", window:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(451))
)
),
eval_example
);回复:如何在不使用变量的情况下从红色三角形菜单中引用轮廓框在我看来,Eval 和 Context box 方式似乎有效,但 Window 则无效。
这是我用来检查的,它模仿轮廓框的动态创建:
Names Default To Here(1);
vb = V List Box();
context_example = Context Box(
box:ob1 = Outline Box("Context1",
{"Copy picture1", box:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(213))
)
)
);
vb << Append (context_example);
context_example = Context Box(
box:ob1 = Outline Box("Context2",
{"Copy picture1", box:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(213))
)
)
);
vb << Append (context_example);
eval_example = Outline Box("Eval1",
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(612))
)
);
Eval(EvalExpr(
eval_example << Set Menu Script(
{"Copy Picture3", Expr(eval_example) << Copy Picture()}
);
));
vb << Append (eval_example);
eval_example = Outline Box("Eval2",
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(612))
)
);
Eval(EvalExpr(
eval_example << Set Menu Script(
{"Copy Picture3", Expr(eval_example) << Copy Picture()}
);
));
vb << Append (eval_example);
nw = New Window("Example",
window:ob1 = Outline Box("Window1",
{"Copy picture2", window:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(451))
)
),
window:ob1 = Outline Box("Window2",
{"Copy picture2", window:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box(Char(451))
)
),
vb
);对于窗口 1 和窗口 2 两种情况,它都会复制窗口 2 框的图片。
回复:如何在不使用变量的情况下从红色三角形菜单中引用轮廓框您可以在脚本中多次使用变量来分配不同的值。最后,变量将包含最后一个值。这适用于
x=5;
x=7;
show(x);
对于:ob1来说。
解决方案使用两个不同的变量来定义对两个不同对象的引用:
nw = New Window("Example",
window:ob1 = Outline Box("Window1",
{"Copy picture", window:ob1 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box("#1")
)
),
window:ob2 = Outline Box("Window2",
{"Copy picture", window:ob2 << Copy Picture()},
H List Box(
Text Box("Label:"),
teb = Text Edit Box("#2")
)
)
);
回复:如何在不使用变量的情况下从红色三角形菜单中引用轮廓框您正在覆盖窗口示例中的引用(例如使用 window:ob1 和 window:ob2)。这不会在上下文框中发生,因为 box: 似乎记得它属于哪个上下文框。根据您的“实际”用例和应用程序,评估方法通常是最强大的,但所有这些都有其优点和缺点(就像使用直接引用一样)。
回复:如何在不使用变量的情况下从红色三角形菜单中引用轮廓框很难找到更多细节——即使对于法学硕士也是如此:
