弹出的对话框位置问题

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

相关推荐

  • wincc 7.3 C脚本,VBS脚本

    哪位仁兄有WINCC 7.3的脚本手册啊,请发zhanghan19850504@163.com,谢谢! 最佳答案 请看下列连接:http://www.doc88.com/…

    SIMATIC WinCC 2017年6月3日
  • wincc结构变量怎么导入导出

    wincc7.4 结构变量怎么导入导出 最佳答案 变量导出/导入(varexim.exe)1.简要说明该工具软件程序从打开的项目中将所有的链接、数据结构和变量导出到相应的…

    SIMATIC WinCC 2021年7月5日
  • 博图软件修改字体

    博图软件字体只有宋体一种,有没有办法选择其他字体?一种字体的画面太单一 最佳答案 项目树->运行系统设置->语言和字体在”组态的字体1/2“中选择你需要的字体体,然后在…

    SIMATIC WinCC 2017年6月7日
  • Wincc flexible 画面中模板上的画面在模拟时显示不出

    我在画面中的模板上面编辑了一副bmp图像,上面添加了一些变量,然后我有的画面是使用模板的,在画面属性里面打勾的,但是我做好了以后,在模拟时,模板上面的图像显示不出来,只显示出来了一…

    SIMATIC WinCC 2019年6月11日
  • WINCC-VBS脚本中如何检测EXCEL文件是否存在???

    我想把WINCC数据存入EXCEL表中,每次存之前需要检测目标文件是否存在,如果存在则打开目标文件,把记录添加到表中,如果不存在,则建立工作薄,并以目标文件名另存,把记录添加在文件…

    SIMATIC WinCC 2019年6月11日
  • wincc编组问题

    是用wincc编组功能,将两个管道wincc库里面自带的管道编组,提示要2个对象! 图片说明:    最佳答案 wincc库里面自带的管道是不能编组的。 提问者…

    2019年6月10日
  • wicc中的语音问题

    有200多条报警语句,要求用电脑中的声卡外接音响实现。现在我用的是WINDOW PLAYERD但一个控件只能组态一句。太多了,不好实现。有没有用一个播放器组态很多的。请多…

    SIMATIC WinCC 2019年6月11日
  • WinCC6.0的项目如何移植到WinCC7.4?

    有个项目是用WinCC6.0做的,请教下怎么个步骤移植到WinCC7.4版本里? 最佳答案 一步一步的来了应该是先升级到6.2,然后移植到7.0,然后可以用7.4的软件直接打开进行…

    SIMATIC WinCC 2021年7月5日
  • wincc 7.0 激活时出现错误

    本人安装好系统,装好WINCC 7.0,激活时出现错误,图片如下,哪位大侠知道,这是什么原因啊? 图片说明:    最佳答案 可能和杀毒软件有关,详细…

    2019年6月10日
  • WINCC 如何出声?

    WINCC在报警的时候,需要声光报警,而且要求在电脑的音响里出声,我以前了解过,好像有一个选件。请问如何使用?如果有资料,最好能提供中文版的,我以前好像见过英文的,使用起来很麻烦。…

    SIMATIC WinCC 2019年6月11日