矩形中-事件-属性-几何,如何触发

在做一个矩形时,在其属性-几何中,对X/Y宽度、高度做了动态,用的C脚本,问如何触发这些动作。谢谢。
 

最佳答案

如何动态化图形对象的大小和位置?
 描述:
 图形对象的“动态填充”属性只允许从底部到顶部填充对象,即使该对象被旋转。本条目描述了如何动态化一个矩形,以达到棒图从右到左增长的效果。对象的大小和位置也可以通过同样的方法实现动态化。

 在WinCC实例中有以下对象被引用:
   描述 对象名称 属性 
 填充变量 "Level" 无符号8位数值, 下限: 0, 上限: 100 
 边界矩形 "Border" 几何: X=19, Y=39, 宽度=402, 高度=32 
 填充矩形 "LevelRect" 几何: X=20, Y=40, 宽度=400, 高度=30
 颜色: 线颜色 = 背景颜色 

 
 注意:
 对所有的动态都使用变量触发: 

 变量: "Level" 
 更新: "一旦改变"
 选择1:动态值的范围
 为下面的填充矩形设置动态效果。 

 
 图 01 

 位置X: 公式: 420 - (400/100 * 'Level') 
 宽度: 公式: 400/100 * 'Level'

 图 02: 动态位置X

 选择2:用C脚本作动态化
   编号 描述: 
 1 属性"位置 X"的C脚本 
 #include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
    int level;
    level = GetTagByte("Level");
    return 420 - ( orgWidth / 100 * level );
 }
  
 2 属性"宽度"的C脚本 
 #include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
    int level;
    level = GetTagByte("Level");
    return 400 / 100 * level;
 }
  

 
 选择3: 用VB脚本作动态化
   编 号 描述: 
 1 属性"位置 X"的VB脚本 
 Function Left_Trigger(Byval Item)
    Dim level
    Set level = HMIRuntime.Tags("Level")
    Item.Left = 420-(400/100 * level.Read)
 End Function
  
 2 属性"宽度"的VB脚本 
 Function Width_Trigger(Byval Item)
    Dim level
    Set level = HMIRuntime.Tags("Level")
    Item.Width = 400/100 * level.Read
 End Function
  

 
 结果: 

 
 图 03 

  
  
  条目号:12730269     日期:2008-05-15   
  
  http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=12730269
 

提问者对于答案的评价:
很详细,谢谢了,对下楼的,也表示感谢!

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

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

相关推荐

  • WInCC存储卡问题

    我把一台触摸屏的程序备份到SD卡里,也能恢复到别的触摸屏里,请问怎样把SD卡里的程序会传达电脑里,SD卡里的程序怎样删除。 问题补充:勾选回传后怎样激活,我在SD卡里备份了一个程序…

    SIMATIC WinCC 2019年6月11日
  • S7300与mp277触摸屏通讯

    S7300与mp277触摸屏通讯,可以用6ES7901-0BF00-0AA0 最佳答案 6ES7901-0BF00-0AA0——MPI电缆。如果是用MPI通信在5米以内就可以用这根…

    SIMATIC WinCC 2018年12月2日
  • wincc os-projecteditor与图形编辑器

    我在设置了os-projecteditor里面的分辨率后,在图形编辑器里就突然多了这些没用的pdl,这不是我自己建立的,请问怎么设置就会去掉啊? 图片说明:  &nbsp…

    2019年6月10日
  • 如何让wincc打开的外部程序都能前端显示啊?

    因为使用ProgramExecute打开的程序总是如果点到其他地方的话,程序窗口就会跑到wincc运行画面后面去,因为不是总是前端显示,有无办法实现打开的任何程序都前端显示啊,谢谢…

    SIMATIC WinCC 2019年6月11日
  • 数据库查询

    Sub OnClick(ByVal Item)  Dim sPro, sDsn, sSer,sCon,&nbs…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC安装问题的疑问

    各位老师,安装wincc时出现下面问题,求解释 图片说明:    最佳答案 安装wincc之前需要安装消息队列组件,在控制面板—程序和功能–打开或关闭Wind…

    2017年6月19日
  • 如何画水平垂直直线

    在WINCC的图形编辑器里,怎么画水平和垂直的直线啊,用鼠标拖多义线的边框半天也托不好,有没有简单的方法啊? 最佳答案 你随意画一条线,是否水平垂直不用管,然后右键这个直线如果你画…

    SIMATIC WinCC 2019年6月10日
  • 多个300plc如何用以太网同wincc进行通信,硬件组态如何设置,wincc通讯如何设置?

    一个项目涉及到多个300plc,一个电脑上显示即可,传输距离长,希望用光纤加以太网传输,s7如何组态,wincc如何组态?诚请各位大虾指点! 问题补充:各个plc之间不进行数据传输…

    SIMATIC WinCC 2019年6月11日
  • 关于安装WINCC6.0

    我安装WINCC6.0后重启电脑时出来一个登录系统的对话框,要用户名和密码.可是我没有设置相关密码.所以不能登录系统.请问这是什么问题?下次安装WINCC前要做什么设置? 问题补充…

    SIMATIC WinCC 2019年6月11日
  • 请问一个WINCC的问题?

    我之前也没有用过WINCC,但是今天想在WINCC编辑器里(见截图2)找到画面(见截图1)中的变量,但是不知道怎么找,用名称找也找不到。谢谢! 图片说明:   …

    2021年7月5日