在ifix项目中,实际上会用到点击按钮弹出按钮菜单,点击另一按钮弹出另一按钮菜单的情况。一般在使用过程中切换菜单可有如下两种普遍做法:

1.使用ClosePicture “Middle",0 关闭当前画面,OpenPicture "***.grf”,"Middle","",""打开新画面(比如上述的按钮菜单画面)

2.使用切换画面命令 replacePicture "***.grf","Middle","",0

如下图所示:

当使用上述两种方法时,会出现一个问题,当点击系统拓扑图,或者历史报警等其余项目时,一二期监控按钮又变成了可点击状态,但是一二期按钮栏未退出,当再次点击一二期监控按钮时就会报错:诸如,"点击的画面已打开”之类的错误

解决方法:

利用新建全局变量isopen作为标志点。将一二期监控,和三期监控按钮做切换动作,保证当按其他按钮时,不执行replacepicture操作。

代码如下:

Private Sub 三期按钮_Click()
    closepicture "MIDDLE"
    If user.isOpen.CurrentValue = 0 Then
  replacepicture "三期按钮栏.grf", "MIDDLE1", "", 0
  user.isOpen.CurrentValue = 1
   End If
End Sub

Private Sub 一二期按钮_Click()
    closepicture "MIDDLE"
    If user.isOpen.CurrentValue = 1 Then
    replacepicture "二期按钮栏.grf", "MIDDLE1", "", 0
    user.isOpen.CurrentValue = 0
    Else
    user.isOpen.CurrentValue = 0
    End If
End Sub

经测试,有效的解决了上述bug,作为记录。

注:(2018-05-03)

上述方法并不是个很好的方法,使用原先的简单方法即可解决此问题。

修改如下:

二期按钮;

closepicture "MIDDLE"

openpicture "test.grf","MIDDLE","",""//打开一个按钮栏中的默认画面,放置MIDDLE别名下无画面。

openpicture "二期按钮栏.grf", "MIDDLE1", "", ""

三期按钮;

closepicture "MIDDLE"

openpicture "test1.grf","MIDDLE","",""//打开一个按钮栏中的默认画面,放置MIDDLE别名下无画面。

openpicture "三期按钮栏.grf", "MIDDLE1", "", ""

ifix 在切换菜单按钮弹出”已打开该画面“bug修复的更多相关文章

  1. Menubutton按钮弹出菜单

    #按钮弹出菜单 from tkinter import * root =Tk() def callback(): print('我被调用了') m = Menubutton(root,text = ' ...

  2. 原生Js_实现简单的下拉折叠菜单(添加弹出动画效果)

    用javascript实现简单的下拉折叠菜单效果 实现步骤 (a)获得各操作的dom对象: (b)在所有菜单按钮对象上添加单击事件: (c)设置所有菜单按钮样式为空,并将当前按钮的样式设置为“acti ...

  3. Java实现文件上传-按钮弹出上传页面

    转自: https://blessht.iteye.com/blog/1405057 最近自己在做一个小系统玩的时候涉及到了文件的上传,于是在网上找到Java上传文件的方案,最后确定使用common- ...

  4. ExtJs 4.2.1 点击按钮弹出表单的窗口

    初学ExtJs,做项目的时候想做一个这样的效果:点击按钮弹出对话框,之前一直是使用EasyUi来做的, EasyUi里有Dialog,用起来很方便,但是现在转移到ExtJs上后,发现没有Dialog这 ...

  5. JavaScript实现点击按钮弹出输入框,点确定后添加li组件到ul组件里

    JavaScript实现点击按钮弹出输入框,点确定后添加li组件到ul组件里 <!doctype html> <html manifest="lab4.manifest&q ...

  6. ExtJS003单击按钮弹出window

    html部分 <input type="button" id="btn" name="name" value="点击&quo ...

  7. Winform 实现像菜单一样弹出层

    原文:Winform 实现像菜单一样弹出层 在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时.这个时候自定义弹出 ...

  8. ObjectAnimator实现菜单的弹出(扇形)

    用ObjectAnimator 实现菜单的弹出 首先是菜单的图片资源和布局 布局中使用FrameLaout 将菜单唤出对应的imageView放在布局的最后面来隐藏菜单详细内容. <?xml v ...

  9. 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

    请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...

随机推荐

  1. ConcurrentSkipListSet - 秒懂

    疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 面试必备 + 面试必备 [博客园总入口 ] 疯狂创客圈 经典图书 : <Sprin ...

  2. delphi xe 10.3 利用Git组群开发,Git服务器安装,Git 拉取,提交,推送相关设置操作

    1. Git服务器安装, 参考 https://blog.csdn.net/u012842630/article/details/97175397 Git服务器官方网站,要FQ. 2. 工具软件 gi ...

  3. 服务器硬件和RAID配置

    服务器 硬件和RAID配置 目录 一.RAID 磁盘阵列介绍 1.1.RAID 0(条带化存储) 1.2.RAID 1(镜像存储) 1.3.RAID 5 1.4.RAID 6 1.5.RAID 1+0 ...

  4. Python中Random随机数返回值方式

    1.a=["1","2","3"] print(random.choice(a)),  随机返回列表a中的一个元素 print(random ...

  5. Redis的flushall/flushdb误操作

    Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的.怎么才能快速恢复数据,让损失达到最小呢? 假设进行fl ...

  6. 深入学习Netty(2)——传统NIO编程

    前言 学习Netty编程,避免不了从了解Java 的NIO编程开始,这样才能通过比较让我们对Netty有更深的了解,才能知道Netty大大的好处.传统的NIO编程code起来比较麻烦,甚至有遗留Bug ...

  7. SpringCloud微服务(基于Eureka+Feign+Hystrix+Zuul)

    一.搭建注册中心 1.1.创建一个cloud-service项目 1.2:POM文件依赖 1 <?xml version="1.0" encoding="UTF-8 ...

  8. Gerrit GitLab GitHub的几点不同

    代码评审的方式不一样 GitHub是基于Pull Request 进行代码评审; GitLab是基于Merge Request 进行代码评审; Gerrit是基于Change Request 进行代码 ...

  9. 2、nacos

    1.Nacos官方文档的说明已经很清晰了. https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html 2.前提条件 https://nacos ...

  10. linux学习之路第七天(时间日期类指令详解)

    时间日期类 1.date指令 date指令 - 显示当前日期 基本语法 1)date (功能描述:显示当前时间): 2) date + %Y (功能描述:显示当前年份) 3)date+%m( 功能描述 ...