找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
如何动态化图形对象的大小和位置?
描述:
图形对象的“动态填充”属性只允许从底部到顶部填充对象,即使该对象被旋转。本条目描述了如何动态化一个矩形,以达到棒图从右到左增长的效果。对象的大小和位置也可以通过同样的方法实现动态化。
在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
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城