回复:求助2

Zaxife

  • 帖子

    2450
  • 精华

    31
  • 被关注

    78

论坛等级:至圣

注册时间:2008-07-24

普通 普通 如何晋级?

发布于 2011-08-10 03:27:17

8楼

quote:[b]以下是引用JustLee在2011-08-09 16:53:14的发言:谢谢指教,我读了一下您的那段脚本,发现有这样一个情况,如果我点了I/O域1,画面显示出来,然后我再点I/O域2,此时根据脚本最后的IF语句,就直接把I/O域1的画面关闭了,如果要实现点击哪个I/O域,就出现对应的那个画面,而不影响其他画面,该如何做呢?

PS:不好意思了,新手问题可能比较幼稚


呃,这个问题直接用画面窗口的标题来过渡就行了。
代码增加了画面窗口位置判断,最大限度的不覆盖下一个IO域。
用下面的代码替换原来的代码就行了。

On Error Resume Next
Dim x1,y1,w1,h1
Dim x2,y2,w2,h2

ScreenItems("H1").TagPrefix = "P1"
ScreenItems("H1").ScreenName = "PVMod"

x1=Item.Top
y1=Item.Left
w1=Item.Width
h1=Item.Height

x2=ScreenItems("H1").Top
y2=ScreenItems("H1").Left
w2=ScreenItems("H1").Width
h2=ScreenItems("H1").Height

If x1 > h2 Then ScreenItems("H1").Top = x1 - h2 Else ScreenItems("H1").Top = x1 + h1
If y1 > w2 Then ScreenItems("H1").Left = y1 - w2 Else ScreenItems("H1").Left = y1 + w1

If ScreenItems("H1").CaptionText <> Item.ObjectName Then
ScreenItems("H1").Visible = True
ScreenItems("H1").CaptionText = Item.ObjectName
Else
If ScreenItems("H1").Visible = False Then
ScreenItems("H1").Visible = True
Else
ScreenItems("H1").Visible = False
End If
End If
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32566条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。