- 自动化系统
- 驱动技术
- 低压电气
- 工业服务
- 其他

更新至第12集
复选框动态选择趋势显示





- 使用操作
- 0
- 38
1. 组态在线趋势控件
添加一个在线趋势控件“控件1“,在控件上添加3条趋势:“趋势1”、“趋势2”、“趋势3”,并分别组态这3个趋势的数据源,分别关联在线变量 “Trend1”、“Trend2”、“Trend3”,如图所示。
2. 添加一个复选框,设置复选框的框数量为3(最多可设置为32),设置3个选择框的文本为“趋势1”、“趋势2”、“趋势3”。
3. 动态勾选复选框的选择框后实现动态控制趋势的显示,需要在复选框的所选框的更改事件中组态 C 脚本:
4. 在 C脚本中,利用for 循环(循环的次数是复选框定义的框数量,此示例中复选框的框数量是3),对复选框的所选框的值逐位进行与运算(即判断复选框中哪些框被勾选了),判断所选框的每一位的数值是0还是1,如果与运算的结果是1则设置对应索引编号的趋势可见,反之,若与运算的对应位的值为0,则设置对应索引编号的趋势不可见。代码如下:
具体代码如下:
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)
{
int i;
for (i = 31; i >= 0; i--) { // 从最高位开始检查
if (value & (1 << i)) { // 检查第i位是否为1
SetPropWord(lpszPictureName,"控件1","TrendIndex",i);//选择索引为 i 的趋势
SetPropBOOL(lpszPictureName,"控件1","TrendVisible",1);//设置索引为 i 的趋势可见
//printf("1");
} else {
SetPropWord(lpszPictureName,"控件1","TrendIndex",i); //选择索引为 i 的趋势
SetPropBOOL(lpszPictureName,"控件1","TrendVisible",0); //设置索引为 i 的趋势可见
//printf("0")
}
}
}
5. 执行效果如下所示:
此时打开在线趋势控件的在线组态对话框:
- 评论
扫码分享