搬家第42天-CITECT2018使用精灵传递超过8个以上的参数

前面的练习针对不超过8个参数传递的精灵,有时候需要传递的变量较多,那么使用assWin函数就无能为力了,需要使用AssVarTags函数。
依然在前面那个citect项目上练习。将前面创作的"!阀门控制"另存为"!阀门控制2"
需要动态显示和操作的控件稍作修改。远程控制旁边的红圈,动态填充?1?_remote,开到位旁边的红圈动态显示?2?_OpenLimit,关到位旁边的红圈动态显示?3?_CloseLimit,故障旁边的红圈动态显示?4?_FAULT,中央自动模式旁边的红圈动态显示?5?_Automode,电源旁边的红圈动态显示?8?_Power,正在打开旁边的红圈动态显示?9?_Opening,正在关闭旁边的红圈动态显示?10?_Closing,打开按钮鼠标点击事件?6?_manopen=1,关闭按钮鼠标点击事件?7?_manclose=1,退出按钮鼠标点击事件winfree()
一共传递10个参数,这次联系在动态定义时,不单单是使用了问号和数字编号,还有后缀,这是为了后面写脚本时,语句短一点。
定义一个精灵,选用阀门形状,阀门的颜色动态,多状态显示颜色,关联%name%_OpenLimit、%name%_CloseLimit、%name%_Fault三个变量,在这个精灵的鼠标点击事件中写以下脚本
AssVarTags(-2,0,"%name%","%name%","%name%","%name%","%name%","%name%","%name%","%name%");
AssVarTags(-2,8,"%name%","%name%");
Pagepopup("!阀门控制2");
 
AssVarTags函数用于传递参数,第一个参数-2表示在接下来出现的窗体传递数据,0表示从第0#参数开始传递,后面的是传递具体的变量名字,一个AssVarTags函数可以传递8个变量,这次练习需要传递10个变量,随意再使用一次AssVarTags函数,传递8#变量开始的剩余变量,最后使用pagepopup函数来弹出窗体。
需要注意蓝色圈内语句总长度是有限制的,所以一开始定义弹出窗体时,要使用?数字编号?_后缀这样的形式,如果两个AssVarTags还是不够用,那就再来几个语句。
最后使用的pagepopup来弹出窗体,比使用pagedisplay语句好得多,我一开始按照帮助文件中函数示例,使用过pagedisplay语句弹出窗体是很大的一个页面,非常丑,而且winfree()退出还无效,所以不能完全照抄帮助中的代码。
在工艺画面上使用刚才创建的精灵,name赋值为V101,保存编译,运行后就能看到传递10个变量毫无问题。
posted @ 2021-03-11 10:37  来自金沙江的小鱼  阅读(381)  评论(0编辑  收藏  举报