- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
紫金桥组态软件窗口的使用
窗口是紫金桥组态软件的人机画面中非常重要的组成部分,是工程数据在计算机上与人互动的主要的手段之一。
在一个工程中,每个画面的名字是唯一的,并作为标识被脚本调用。画面以文件的形式存放在工程中doc文件夹下,每个画面对应一个与其同名并以“drw”为扩展名的文件,如窗口“DRAW1”对应为“DRAW1.drw”文件。该文件存储了该窗口的大部分内容,一般来讲,该窗口文件拷贝到其他工程下的doc文件夹下就可以直接进入组态使用。只有当画面引用了图片或图形模板时,则需要将相应的文件同时拷贝。
窗口按类型可分为:覆盖窗口、弹出式窗口和顶层窗口。
窗口按运行时的打开方式可分为:普通打开、被动隐藏打开、子窗口、模态窗口、多实例窗口。本文主要讲述这几种打开方式的使用。
普通打开
普通模式打开就是使用窗口函数Open 或者在view.exe中手动打开窗口,这时需要注意的是,如果窗口具有“打开其他窗口时自动关闭”属性,那么同类型的其他窗口会被关闭,只留下当前窗口。
被动隐藏打开
当窗口中元素(如:窗口函数、窗口变量、窗口对象等)被窗口外环境(如:全局脚本、其他窗口内脚本等)引用时,该窗口会被动打开,并且隐藏。这是因为窗口元素的存在是以窗口打开为前提的,窗口本身是窗口中所有元素的载体,因此窗口外环境引用本窗口元素时,系统必须打开本窗口才能使其生效。这种方式打开的窗口除以隐藏方式打开外,其他特性与普通方式打开一样。
需要注意的是,即使是被动隐藏打开,该窗口的窗口进入脚本、周期脚本、退出脚本以及窗口内其他对象的脚本或者动画链接等所有动作仍会生效。
子窗口
子窗口打开是指以窗口函数OpenChild 方式打开窗口。例如:
#DRAW1. OpenChild “DRAW2” ;
这句脚本的作用是将窗口DRAW2以窗口DRAW1的子窗口方式打开,也就是说,窗口DRAW1是窗口DRAW2的父窗口。那么这两个窗口间有着怎样的关系呢?
它们间的关系取决于子窗口的类型。如果窗口DRAW2为覆盖式窗口,那么窗口DRAW2的存在依赖于其父窗口DRAW1,简单地说就是如果窗口DRAW1被关闭了,那么窗口DRAW2会自动关闭。而且,窗口DRAW2只能显示在窗口DRAW1的范围内,超出该范围的部分不显示,看上去就像窗口DRAW1中的一个组件一样。再者,如果父窗口被移动,则子窗口随之移动。如果将窗口DRAW2的标题栏和系统菜单去掉,那么窗口DRAW2则被完全嵌入其父窗口中,不能使用鼠标移动。
下表列出了不同类型子窗口与父窗口间的关系。
窗口类型 是否依赖于父窗口的存在 显示范围是否局限于父窗口内 是否跟随父窗口移动而移动 覆盖窗口 是 是 是 弹出式窗口 否 否 否 顶层窗口 否 否 否 模态窗口
模态窗口就是以窗口函数DoModal 的方式打开的窗口。不同类型的窗口都能以模态窗口的方式打开。并且,模态窗口打开以后,整个view.exe程序的焦点落在该窗口上,只有当该窗口被关闭后焦点才能释放。执行窗口函数EndModal 后,等同于关闭该窗口,该窗口内所有数据均被销毁。该种窗口的使用在紫金桥联机帮助中有详细讲解,不再赘述。
多实例窗口
多实例窗口是以窗口函数New 的方式打开的窗口。函数New 的作用是以多实例的方式新建一个窗口,并且可以同时创建多个窗口实例。例如:
int nWinID1 #DRAW1.New 1 ;
int nWinID2 #DRAW1.New 1 ;
这两句脚本的功能是,以窗口DRAW1为模具分别创建两个实例窗口并且打开,新创建的窗口实例句柄分别返回给整型变量nWinID1和nWinID2。这两个窗口可以看做是窗口DRAW1的两个副本,相当于复制了窗口DRAW1的所有内容,并且各自独立运行,互不干扰。这样做的目的是为了在运行时满足同一种算法实现存储不同中间结果的需要。当多个实例存在时,可以通过窗口函数Use int nWinID 在同一个窗口的不同实例间切换,使用该函数后,会将指定实例句柄的实例窗口设置为当前实例窗口。
注意,在运行时,同一时刻只有一个当前实例窗口。在不使用函数Use 时,最后一个生成的实例窗口为当前实例窗口,因鼠标点击等原因而获取焦点的实例窗口也会成为当前实例窗口。
在多实例窗口存在的情况下,脚本中所有针对该窗口名字的操作或者引用均生效于当前实例窗口,与非当前实例窗口无关。
另外,可以使用窗口函数NewChild 以子窗口的方式新建多实例窗口。这样打开的窗口除具有多实例窗口的特征外还具有子窗口的特征。
文档评论(0)