我有两个画面,在A画面有3个画面窗口PIc-A,PIc-B ,PIc-C,调用的同一个模板pump。
画面窗口PIc-A,PIc-B ,PIc-C,分别带有变量前缀P01. P02. P03. 。
模板pump中,设置一个按钮,就是把模板的内容,放大,放到画面B中,B中也放置了一个带变量前缀的画面窗口pic_template,且调用模板pic_template,,这个窗口的模板比上面的PUmp模板多了趋势图。
附件图片中的按钮VB,VC,是分别用VB和VC测试用的
现在我遇到的问题是:在按钮脚本中指定变量前缀的话,画面B中可以正常显示,但是想用获取A画面中3个窗口的变量前缀的方法,来实现想要的功能,但画面B的IO域就是不正常。
我想关键点应该就是获取父级画面窗口的前缀,就各位大神指点。谢谢
附现在的按钮脚本,是指定的变量前缀,是可以实现我要的功能的:
VB
Dim obj1
HMIRuntime.BaseScreenName = "02_detail"
Set obj1=HMIRuntime.Screens("02_detail").ScreenItems("pic_template")
'obj1.PictureName = "02_TemplateHK"
obj1.TagPrefix = "HK2_P03."
VC
OpenPicture("02_detail.PDL"); //Return-Type: void
SetPropChar("02_detail","pic_template","TagPrefix","HK2_P03.");
因为我是A画面调用的同一个模板,所以指定变量前缀打开在B画面,是行不通的,只有想办法获取A画面中3个画面窗口的前缀。
问题补充:
给出的代码没有成功,从附件图片中得到了信息,成功取到了画面前缀。
我用的代码:
Dim mycircle
Set mycircle = ScreenItems("圆1")
MsgBox mycircle.Parent.Parent.TagPrefix
图片说明:
最佳答案
在模板pump的按钮事件中:
Sub OnClick(Byval Item)
Dim obj1
HMIRuntime.BaseScreenName = "02_detail"
Set obj1 = HMIRuntime.Screens("02_detail").ScreenItems("pic_template")
''HMIRuntime.Trace item.Parent.Parent.PictureName
obj1.TagPrefix = item.Parent.Parent.TagPrefix
End Sub
附件:画面层次关系图
图片说明:
提问者对于答案的评价:
非常感谢。
给出的代码没有成功,从附件图片中得到了信息,成功取到了画面前缀。
我用的代码:
Dim mycircle
Set mycircle = ScreenItems("圆1")
MsgBox mycircle.Parent.Parent.TagPrefix
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc359566.html