技术论坛

 wincc弹窗位置算法

返回主题列表
作者 主题
觅鹏智能
侠圣

经验值:2578
发帖数:133
精华帖:0
楼主    2022-02-11 16:40:42
主题:wincc弹窗位置算法

在使用wincc的过程中,我们在生产画面的设备图标上点右键弹出这个设备参数窗口,然而这些设备可能在屏幕的靠边位置,弹出的窗口就会在屏幕的外面了,或者一大半这外面,这样很不好。现在想实现在弹窗的脚本里判断一下,如果超出屏幕,就自动调整窗口的位置,使得窗口不移出屏幕。这个算法应该怎么写?大家有没有过这样的应用。

博学笃志,勇创新高
龟仙人
奇侠

经验值:8538
发帖数:939
精华帖:15
2楼    2022-02-11 21:42:11
精华帖  主题:回复:wincc弹窗位置算法

Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)                

              

'*************弹出画面控制*********************

'先隐藏窗口

'为画面分配名称

'为窗口分配标题

'为窗口分配名称

'分配变量前缀

'计算窗口位置,如果窗口位置超出父级画面位置则重新定位

'Dim Except_Obj1

'Dim Except_Obj2

'Set Except_Obj1 = HMIRuntime.Screens("Graphcs").Items("")

Dim Win

Set Win = ScreenItems("Window1")

Win.Visible = vbFalse

Win.PictureName = "Valve1"

Win.CaptionText = "1#送水泵进口阀"

Win.TagPrefix = "V4001."

Win.Visible = vbTrue

Win.Left = x - Win.Width/2

Win.Top = y - Win.Height - 20 

If Win.Left < 0 Then Win.Left =10

If Win.Top < 0 Then Win.Top = 10

If (Win.Left + Win.Width) > Win.Parent.Width Then Win.Left = Win.Parent.Width -  Win.Width - 10

If (Win.Top + Win.Height) > Win.Parent.Height  Then Win.Top = Win.Parent.Height - Win.Height - 10


End Sub


万泉河
版主

经验值:28633
发帖数:10885
精华帖:131
4楼    2022-02-24 09:42:42
精华帖  主题:回复:wincc弹窗位置算法

C的话有个getparentpicture的函数。 

是另外一种实现思路。 不能逐句照搬

https://support.industry.siemens.com/tf/ww/en/posts/how-to-get-a-property-from-a-parent-picture-with-c-s cript/22290

微信公众号:PLC标准化编程,ZHO6371995
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。