弹出的对话框位置问题

使用WINCC库中的阀门、电机等图标,单击他们弹出操作的对话框,现在的问题是弹出的对话框是在鼠标点击的位置附近出来,但是点击监控画面边缘的图标时发现,弹出的对话框超出了画面的边缘,还得用鼠标拖拽回来,(因为是改造项目,原制作者在PLC中的地址不规律,无法用结构变量,只能把阀门的操作对话框逐一制作出来,我使用VB程序加画面窗口做的,)程序如下:
Sub MouseDown(ByVal Item,  ByVal Button,  ByVal Shift,  ByVal x,  ByVal y) 
Dim PIC
Set PIC = ScreenItems("画面窗口1")''''''''选择画面窗口
ScreenItems.Item("画面窗口1").PICTURENAME="阀门号"
PIC.Visible = False
PIC.Left = item.Left+10
PIC.Top = item.Top
ScreenItems("画面窗口1").Visible = True
End Sub
不知道怎么解决,请高手们赐教!

问题补充:
能不能来个VB的程序判断离上下、左右的位置啊

最佳答案

试试这个全局函数吧 希望对你有帮助
你只需修改DialogName参数

Sub ShowDialog(Byval DialogName,Byval x,Byval y) 
''''''''对话框显示位置自动调整函数函数
''''''''鼠标事件按左键事件中调用
''''''''DialogName为要显示对象的名称  x,y为鼠标点击的位置(鼠标左键事件中调用直接为X,Y)
''''''''例:Call ShowDialog("1号鼓风机放空气阀_Dialog",x,y) 
''''''''by:逐渐变晕
Dim PageWidth,PageHeight,DiaWidth,DiaHeight,PX,PY,Constval
Constval=30 ''''''''调整显示对话框距离鼠标点击点距离
PageWidth=HMIRuntime.Screens ("").Width 
PageHeight =HMIRuntime.Screens ("").Height
DiaWidth=ScreenItems(DialogName).Width
DiaHeight=ScreenItems(DialogName).Height
px=x+Constval
PY=y+Constval
If x+DiaWidth+Constval >=PageWidth  Then 
PX=x-Constval*2-DiaWidth
End If
If y+DiaHeight+Constval >=PageHeight Then 
PY=y-Constval*2-DiaHeight
End If
ScreenItems(DialogName).Left=PX
ScreenItems(DialogName).Top=PY
ScreenItems(DialogName).Visible = True

End Sub 

Sub  EndDialog(Byval DialogName)
Dim PageWidth
PageWidth=HMIRuntime.Screens ("").Width 
ScreenItems(DialogName).Left=ScreenItems(DialogName).Left+PageWidth
End Sub

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264380.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:56
下一篇 2019年6月11日 上午2:57

相关推荐

  • 报警记录消息。

    我想某些开关量的记录,当开关量来时,记录一条“报警到来”,此开关量再变为0时再记录一条“报警消失”,我是这样做的,把这个开关量连到消息变量,在 消息文本处填写报警信息。我…

    2019年6月10日
  • 在WinCC 中利用 WinCC Alarm Control 如何显示警报的变量名

    请教各位高手一个问题,我在WinCC中利用 WinCC Alarm Control 组态了一个警报显示画面,在设置WinCC Al…

    SIMATIC WinCC 2019年6月11日
  • 安装Wincc V6.2时存在的问题

    在Windows 服务器版2003系统下,安装Wincc时出现的提示如图一,请问下一步怎么办?谢谢! 图片说明:    最佳答案 缺少组件消息队列1.…

    2017年11月1日
  • 关于WINCC卸载与安装的问题

    我想请问两个问题: 1我重新设置了WINCC项目的启动画面后项目为什么不能激活停留在归档初始化阶段? 2我在没有卸载的情况下重装了WINCC后重新开机就不能进入…

    SIMATIC WinCC 2019年6月11日
  • NoteBook与MP277通讯的相关参数设置

    各位,我的本无R232口,只有USB口,自购USB转R232电缆一根。通过这条电缆与三菱PLC、三菱人机、s7-200PLC通讯,无任何问题,现在要与MP277通讯,却怎样也连接不…

    SIMATIC WinCC 2019年6月11日
  • wincc中布尔型和位的区别

    在WINCC6.2中,为对象添加动态时,对话框里需要选择数据类型,有模拟量、布尔型、位、直接。请问布尔型和位在应用上有什么不同和区别?另外直接这个类型的用法请提供说明和案例。谢谢了…

    SIMATIC WinCC 2019年6月11日
  • wincc 错误24

    wincc激活过程中提示 错误24发生在函数ChnRegisterVariale中 ,提示是在激活Data Manager 那里出现的,确定…

    SIMATIC WinCC 2019年6月11日
  • 求WINCC与WINDOWS系统的兼容性

    想知道WINCC7.0往后的版本跟各WINDOWS 、IE、OFFICE、的兼容性列表! 最佳答案 兼容性工具查询https://support.automation.s…

    2017年8月15日
  • 远程访问WinCC数据库

    在Wincc项目中创建了自己的数据库,数据库表中建立了用户信息,通过登录界面写登录信息到数据库表中,并把界面通过WebNavigator发布到网上,远程通过IE访问WinCC时需要…

    SIMATIC WinCC 2019年6月11日
  • WINCC打开项目的问题

    请问大家一个问题,wincc 7.0可以打开wincc 6.2、 wincc6.0、wincc5.2版本的项目吗?谢谢 最佳答案 WINCC&nbsp…

    SIMATIC WinCC 2019年6月11日