弹出的对话框位置问题

使用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

相关推荐

  • wincc5.1 如何连接sql server 数据库

    请问各位朋友,我现在想让wincc 5.1项目连接sqlserver 有办法连接?,还是转换成6.0版本为好,谢谢了!!! 问题补充:我想把wincc5.1实时…

    SIMATIC WinCC 2019年6月11日
  • wincc 画面窗口中,有变量需要前缀,有些不需要,如何解决

    如题,画面窗口,我有些变量是需要加前缀的,但是有些是直连变量,这个有什么好的解决办法????? 最佳答案 你可以参考下面这个以前问题的解答http://www.ad.siemens…

    SIMATIC WinCC 2017年11月4日
  • wincc7.0组态中图形找不到。

    项目中需要如下的图形,但是找不到。求解怎么可以找到?另外,wincc7.0组态提供哪些图形?有相关的图形库吗? 最佳答案 1.没看到你需要什么图形,你可否截个图上来。2.wincc…

    SIMATIC WinCC 2017年8月18日
  • wincc login及logout怎麼設定

    wincc login及logout怎麼設定 问题补充:是否有範例 最佳答案 怎么通过按钮做login和logout功能?具体步骤如下:1.在启动画面中插入“画面窗口”。…

    SIMATIC WinCC 2021年7月5日
  • 32位浮点数用科学计数法显示的问题

    如题,wincc中的外部变量,32位IEEE 754浮点数;默认为FLOAT to FLOAT。    &nb…

    SIMATIC WinCC 2019年6月11日
  • 脚本调用画面

    我想在一个图形的左键动作上写个脚本,点击这个图形调用相应的画面,需要用哪个函数呀  最佳答案 OpenPicture("画面名称.PDL"); 提问者…

    SIMATIC WinCC 2019年6月11日
  • Set PG/PC Interface ??

    安装Wincc的PC机上已经安装了CP1613的网卡,打开Windows控制面板下的Set PG/PC Interface,单击“选择”按钮,在“安装/删除接口…

    SIMATIC WinCC 2019年6月11日
  • 弹出小按钮

    各位大虾,请问一下在WINCC6.0 组态的图形编辑器中,我做了个电动阀门的图标,点击这个图标呢需要弹出一个小画面,小画面上有开、关按钮和电流显示等,开和关应业主的要求需…

    SIMATIC WinCC 2019年6月11日
  • wincc服务器选型问题

    我现在有一个应用,客户要求上位机要两台服务器互为冗余,四台操作员站,要有报警报表,3个月数据记录可查,3个月趋势图可查,总结下来是2k个变量,那我现在选一个2048的运行版,一个2…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible如何设置I/O域的上下限

    还有一个疑问就是怎么能给一个I/O域做成超出上限红灯亮,超出下限黄灯亮呢 最佳答案 在I/O域所连接的变量中设置上限下限值,然后在I/O域的限制属性中设置超出上限以及超出下限的颜色…

    2017年6月1日