作者 | 主题 |
---|---|
觅鹏智能 侠圣 经验值: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
|