序言
在设计wincc组态画面的时候,为了减少画面窗口及减少主画面的拥挤,设计的时候我们常常采用弹出画面(弹窗)的方式。因弹窗如果不定位,那么就会造成弹窗画面的不固定性,从而造成操作的不方便。
解决方案
弹窗方式一的特点: 窗体大小可控,弹窗的位置在按钮旁边(跟随鼠标)。
弹窗方式二的特点:弹窗随意。
实现方式:
(1)建立变量
(2)建立画面窗口
(3)建立VBS脚本
(4)以前的脚本
Dim open
Dim username
Set username = HMIRuntime.Tags("@CurrentUserName")
username.Read
If username.Value="admin" Then
Set open =Screens("画面窗口1")
open.ScreenName="TEST001_水泵控制"
open.TagPrefix ="P101A"
open.Visible=True
open.left =495
open.top=425
Else
Msgbox "当前登录用户无操作权限",64,"用户登录"
End If
===当前的脚本====
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim open
Dim username
Set username = HMIRuntime.Tags("@CurrentUserName")
username.Read
If username.Value="Admin" Then
Set open = ScreenItems("画面窗口1")
open.ScreenName="TEST001_水泵控制"
open.TagPrefix ="P101A"
open.Visible=True
open.CaptionText="P101A界面"
OPEN.WindowCloseEnabled=True
If((x+open.Width) > item.Parent.Width)Then '判断鼠标x坐标是否超限
open.Left = item.Parent.Width - open.Width
Else
open.Left = x
End If
If((y+open.Height) > item.Parent.Height)Then '判断鼠标y坐标是否超限
open.top = item.Parent.Height - open.Height
Else
open.top = y
End If
open.width =310
open.height=210
Else
Msgbox "当前登录用户无操作权限",64,"用户登录"
End If
End Sub
===测试效果====
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3073326055887011843 |