| 其中number是变量,通过对number的取值,就可以达到对各个对象的控制,因此运用EvalAssign函数的关键就是归纳或设计出一个能代表全部元素的通用变量表示式,上面所阐述的原理Eval函数也是通用的。为了加深认识,我们来看一个简单应用的实例,下图1.5为其流程图。它实现一个简单功能:只用一个按钮操作就可顺序切换到框架中的各个分支。

图1.5 EvalAssign简单用法范例
首先建立如图1.5的流程图,在“Start”计算图标里写入如下公式代码:
ResizeWindow(320,180) ----设置演示屏幕大小
i:=1 ----给自定义变量I赋值
repeat with k:=1 to 5 ----循环设置pic系列显示图标为不可移动EvalAssign("movable@\"pic"^k^"\":=FALSE")
end repeat
根据图1.5的流程图,我们可以知道范例中的关键是把框架中的显示图标命名为一系列有规律的名称:“pic1”、“pic2”….“pic5”,然后利用EvalAssign系统函数编写通用的代码,按钮响应交互(设置为永久交互)的计算分支“Goto
Icon”代码如下:
if i=5 then
i:=0
end if
i:=i+1
EvalAssign("goto(iconid@\"pic"^i^"\")")
其中变量“i”为自定义变量,通过它的动态改变而实现循环的切换到框架的各个分支。在程序的开头我们还要对变量“i”赋初值:i:=1,这样可以确保从框架的第一个分支开始进行循环切换。最后运行的效果如下图1.6所示,只要不断的按“Goto
Icon”按钮,按钮下面的数字图片,即代表各个分支的图片就会顺序的循环切换。

图1.6 范例演示效果
专题总结
通过上面的学习,对Eval和EvalAssign两个系统函数的用法是不是有了更深的认识?有了这两个“兄弟函数”,我们就可以在程序中把大批量相同性质的工作做成循环,从而大大地提高程序的运行效率。
|