图库中叹号的闪烁问题

图库中的叹号作闪烁处理,先把它做成自定义对象,然后在显示属性中加入以下C动作:
  DWORD con;
   static BOOL a; 
   con=GetTagDWord("VW100");
   if (con==1)
   { if(a==1)
      a=0;
     else 
     a=1;
   }
   else
   a=0;
   return a;
 VW100为使显示为1的二进制变量。
 该C动作触发器为什么选择标准周期的时候,会造成其他画面窗口的闪烁?若把触发器改为变量VW100(有变化时),叹号不闪烁了,其他画面窗口也不闪烁了。不知道是什么原因,也不知道到底该如何做闪烁处理。请高手指教

问题补充:
dcount107,我用您的做法也能实现,不过还是会造成其他画面窗口的闪烁。我不知道您说的其他窗口是否设置有动态属性什么意思,我的画面窗口时用
 SetVisible("Main.PDL","PID2_CMD",TRUE); 
 //Return-Type: BOOL 
 SetPictureName("Main.PDL","PID2_CMD","PID2.PDL")
 //Return-Type: BOOL
 这种格式写的,都是做好的PDL,然后装载到画面窗口中的。不知道有影响没有。
 

最佳答案

该C动作触发器为什么选择标准周期的时候,会造成其他画面窗口的闪烁?
  其他画面窗口是否设置有动态属性?

  若把触发器改为变量VW100(有变化时),叹号不闪烁了:VW100变化才会执行该动作,当时是正常现象。

  我的做法是利用全局动作和一内部变量bFlash,打造一个通用的闪烁变量,全局脚本内容为:
  int gscAction( void )
  {
  SetTagBit("bFlash",!GetTagBit("bFlash"));
  return 0; 
  }
  触发条件选择为周期1S或者2S即可。

  具体的对象闪烁可做如下步骤,叹号>>显示>>动态对话框:
     表达式:  !’VW100’||’bFlash’
        结果:    真–是   假–否
     事件触发器: 改为“有变化时”

  其他需要闪烁的可以如法炮制,只是触发变量不同而已。
 ———————————————————
 问题应该出在这里了,可尝试屏蔽相关代码再做测试。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐