签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
小白求助, 嵌套多层窗口画面,点击按钮的弹窗要让它出现在上一层窗口画面或上上层里,求一个简单明了的c脚本
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1798929&b_id=5&s_id=0&num=9
啥意思
点击按钮了,让啥出现在画面窗口1里面还是出现在低层里面?
你的意思让按钮的位置改变还是啥,有点没看明白呢,不好意思
定义一个wincc的内部bool'变量dis,你需要现实的那个窗口的显示属性连接这个变量,为1显示,为0不显示,按钮直接给dis赋值1,显示的画面中做一个关闭按钮,按钮给dis赋值0,就可以了。
C脚本简单的呀,没有什么层次结构
如果你要显示的对象在画面窗口1里面,画面窗口1的名字是a.pdl,对象名字是b
那脚本就是:SetVisible("a.pdl",b,true);
这样就行了
直接找那个对象所在的画面的名字就行了
谢谢楼上老师解答,画面弹出问题已解决,又出现新问题,想通过变量改变变量前缀,程序看了好多遍没看出问题,求解答。
可以确定aa 是有值的。aa为所在控件1所在窗口的前缀变量
''窗口变量前缀''这个变量是16位文本类型
在设置变量前缀之前,先把画面的visible设置为false,变量前缀改完之后,先设置成true
需要刷新一下画面的
变量绑定的不对?
变量前缀那里不是选模拟量
选直接
或者在动态的位置,右键直接选择对应的变量,然后在右侧改一下更新周期就好了
这个问题用VBS做起来比较容易实现。
在我的书《西门子WINCC从入门到精通》的P135页有讲过。
至于C脚本,也有实现的方法,在PCS7和BST例子中都有现成的脚本可以参考。
建议不要自己从头造轮子。 花点时间去找到程序读懂直接使用效果要好多了。
我只是当初写书的时候忘记了在C脚本里面也把这个问题顺便写在书里就好了。
C脚本的关键核心在于有一个不知何出处的函数:GetParentPicture
可以获得父窗口的句柄,并因此不断向上可以获得各级父窗口内的所有需要的控件的属性信息。
比如:
strcpy(Name,GetPropChar(GetParentPicture(lpszPictureName),GetParentPictureWindow(lpszPictureName),"TagPrefix")); //Return-Type: char*
搞定了吗?怎么解决的
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录