1. 选项组
其中字体的设置:
选项组属性的输入输出不设置的话,当选择完毕后重新切换画面会自动回到0x1的位置,并不会保持。也可以理解为是选项组的”蓝点“的显示,并非是执行了操作。
上述的操作只能起到一个保持选项组结果的作用,也就是显示的作用,真正实现切换操作的事件中输入输出。
切换操作的C脚本:
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)
{
if ("MainMode_Msg"==1)//当前时刻是主模式
SetPropDouble("弹出_风机变频.PDL","选项组1","Process",1);//选项组1显示主模式,这与属性的输入输出是对应的。
if ("StdbyMode_Msg"==1)//当前时刻是备用模式
SetPropDouble("弹出_风机变频.PDL","选项组1","Process",2);//选项组1显示备用模式
if ("None_Msg"==1)//当前时刻是空模式
SetPropDouble("弹出_风机变频.PDL","选项组1","Process",3);//选项组1显示空模式
switch(value) //vlaue是选组选项的取值,如果有前缀需要设置“前缀.value"变量,如果没有前缀无需设置。
{
case 1:SetTagBit("MainModeCmd",1);//发送切换主模式指令
break;
case 2:SetTagBit("StdbyModeCmd",1);//发送切换备用模式指令
break;
case 4:SetTagBit("NoneCmd",1);//发送切换空模式指令
break;
}
}
2. 复选框
复选框的操作与选项组类似,但是复选框可以实现多选,选项组只能实现单选。下面示例是拆分的单个复选框组成三个选择。
首先设置框中”√“的显示:
然后设置事件操作:
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)
{
switch(value)
{case 1:
SetTagBit("GC01A_HMI.StdbyModeCmd",1);
SetPropDouble("弹出_加压机组主备.PDL","复选框1","Process",0);
SetPropDouble("弹出_加压机组主备.PDL","复选框3","Process",0);
break;
}
}
上述设置的是1#加压机的备用模式,同样的方法设置1#加压机的主用模式。
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)
{
switch(value)
{case 1:SetTagBit("GC01A_HMI.MainModeCmd",1);
SetPropDouble("弹出_加压机组主备.PDL","复选框2","Process",0);
SetPropDouble("弹出_加压机组主备.PDL","复选框3","Process",0);
break;
}
}
一定要注意复选框的名称。同样的方法可以设置其它复选框。
如果是一个组件中多个复选框,那么只需将代码中多增加几个case就可,设置方法与选项组相同。