五、窗口属性

为了在工程的运行过程中能够方便灵活的改变用户窗口的属性和状态,设置了用户窗口的属性,以备用户在实际组态过程中设置使用,如图7.5-1。这样在脚本程序中,使用操作符“.”,可以在脚本程序或使用表达式的地方,调用用户窗口对象相应的属性。例如:用户窗口.窗口0.Name可以取得窗口0的名字。

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(1)

图7.5-1 用户窗口属性

用户窗口属性说明:

Name

属性意义: 窗口的名字

属性类型: 字符串

实 例: ret = 用户窗口.窗口1.Name ,ret = “窗口1”的Name属性值

Left

函数说明: 此函数在G系列产品中无效,考虑兼容性问题,故保留

Top

函数说明: 此函数在G系列产品中无效,考虑兼容性问题,故保留

Width

函数说明: 此函数在G系列产品中无效,考虑兼容性问题,故保留

Height

函数说明: 此函数在G系列产品中无效,考虑兼容性问题,故保留

Visible

属性意义: 窗口的可见度

属性类型: 整数0,不可见1,可见

实 例: 用户窗口.窗口1.Visible = 1 ,设置“窗口1”的Visible属性值为1,即为可见ret = 用户窗口.窗口1.Visible,ret = “窗口1”的Visible属性值

注意事项: 在子窗口中无效

Caption

函数说明: 此函数在G系列产品中无效,考虑兼容性问题,故保留

六、窗口方法

为了在工程的运行过程中能够方便灵活的改变用户窗口的属性和状态,设置了用户窗口的方法,以备用户在实际组态过程中设置使用,如图7.6-1。这样在脚本程序中,使用操作符“.”,可以在脚本程序或使用表达式的地方,调用用户窗口对象相应的方法。例如:用户窗口.窗口0.OpenSubWnd则可以打开用户窗口0的子窗口。

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(2)

图7.6-1 用户窗口方法

用户窗口方法说明:

Open()

方法作用: 打开窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

实 例: 用户窗口.窗口1.Open(),打开窗口名为“窗口1”的窗口

Close()

方法作用: 关闭窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

实 例: 用户窗口.窗口1.Close(),关闭窗口名为“窗口1”的窗口

Hide()

方法作用: 隐藏窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

实 例: 用户窗口.窗口1.Hide(),隐藏窗口名为“窗口1”的窗口

Print()

方法作用: 打印当前窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

注意事项: 此函数功能未实现

Refresh()

方法作用: 刷新当前窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

实 例: 用户窗口.窗口1.Refresh(),刷新窗口名为“窗口1”的窗口

BringToTop()

函数说明:此函数在McgsPro系列产品中无效,考虑兼容性问题,故保留

OpenSubWnd(参数1, 参数2, 参数3, 参数4, 参数5, 参数6)

函数意义: 显示子窗口

返 回 值: 字符串,恒等于“”

参 数 值:参数1,用户窗口名参数2,浮点数,打开子窗口相对于本窗口的X坐标iLeft参数3,浮点数,打开子窗口相对于本窗口的Y坐标iTop参数4,浮点数,打开子窗口的宽度iWidth参数5,浮点数,打开子窗口的高度iHeight参数6,浮点数,打开子窗口的类型

0位:是否模态模式打开,使用此功能,须通过调用CloseSubWnd或CloseAllSubWnd来关闭此子窗口,子窗口外的构件对鼠标操作不响应

1位:是否菜单模式打开,使用此功能,一旦在子窗口之外鼠标按下,则子窗口关闭

2位:是否显示水平滚动条,使用此功能,可以显示水平滚动条(不支持)

3位:是否垂直显示滚动条,使用此功能,可以显示垂直滚动条(不支持)

4位:是否显示边框,选择此功能,在子窗口周围显示细黑线边框

5位:是否自动跟踪显示子窗口,选择此功能,在当前鼠标位置上显示子窗口。选用此功能则忽略iLeft,iTop的值。如果鼠标在系统窗口内部且当前鼠标位置下无法完整的显示子窗口,则子窗口会自动调整位置使其显示完整。同理当鼠标在系统窗口外部时,子窗口也会自动调整位置显示在窗口内部并显示完整

6位:是否自动调整子窗口的宽度和高度为缺省值,使用此功能则忽略iWidth和iHeight的值

实 例:(1)!OpenSubWnd(窗口1,0,0,400,240,1)在位置(0,0)打开大小为400*200,子窗口名为“窗口1”的模态子窗口(2)!OpenSubWnd(窗口1,0,0,400,240,2)在位置(0,0)打开大小为400*200,子窗口名为“窗口1”的菜单子窗口(3)!OpenSubWnd(窗口1,0,0,400,240,34)在位置(0,0)打开大小为400*200,子窗口名为“窗口1”的菜单子窗口,并自动跟随鼠标显示

注意事项:(1)子窗口打开方式既不是模态模式也不是菜单模式时,鼠标在子窗口外按下不会关闭子窗口且窗口外的构件会响应鼠标操作(2)当多个子窗口被打开,且最后一个打开的子窗口为模态模式时,则该子窗口外所有鼠标操作不响应(3)当多个子窗口被打开,即使这些子窗口中存在模态模式打开的子窗口,但只要最后一个打开的子窗口为菜单模式,则该子窗口内部和外部都会响应鼠标操作(4)子窗口的关闭:当前标准窗口关闭则所有子窗口全部关闭使用CloseSubWnd,参数为子窗口名,只关闭当前标准窗口下所有窗口名为该子窗口名的子窗口使用CloseAllSubWnd,关闭当前标准窗口下的所有子窗口

CloseSubWnd(参数1)

方法作用: 关闭子窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

参 数 值: 参数1,子窗口的名字

实 例: 用户窗口.窗口1.CloseSubWnd(窗口2),关闭窗口名为“窗口2”的子窗口

CloseAllSubWnd()

方法作用: 关闭当前标准窗口中的所有子窗口

返 回 值: 整数= 0,操作成功<>0,操作失败

实 例: 用户窗口.窗口1.CloseAllSubWnd(),关闭当前标准窗口的所有子窗口

七、窗口事件

在G系列产品中,用户窗口支持事件的概念。所谓事件,就是当用户在窗口中进行某些操作时,用户窗口会根据用户不同的操作进行相应的处理。例如当用户在窗口中用鼠标单击窗口时,就会触发用户窗口的Click事件,同时执行在Click事件中定义的一系列操作。

G系列产品用户窗口包括如下的一些事件:

Click

描 述: 当鼠标单击时触发

MouseDown

描 述: 鼠标按下时触发

参 数1: 鼠标按下时的鼠标按键信息,为1时,表示左键按下,为2时,表示右键按下,为4时,表示中键按下

参 数2: 鼠标按下时的键盘信息,为1时,表示Shift键按下,为2时,表示Control键按下,为4时,表示ALT键按下。

参 数3: 鼠标按下时的X坐标

参 数4: 鼠标按下时的Y坐标

MouseMove

描 述: 鼠标移动时触发

参 数1: 鼠标移动时的鼠标按键信息,为1时,表示左键按下,为2时,表示右键按下,为4时,表示中键按下。

参 数2: 鼠标移动时的键盘信息,为1时,表示Shift键按下,为2时,表示Control键按下,为4时,表示ALT键按下。

参 数3: 鼠标的X坐标

参 数4: 鼠标的Y坐标

MouseUp

描 述: 鼠标抬起时触发

参 数1: 鼠标抬起时的鼠标按键信息,为1时,表示左键按下,为2时,表示右键按下,为4时,表示中键按下。

参 数2: 鼠标抬起时的键盘信息,为1时,表示Shift键按下,为2时,表示Control键按下,为4时,表示ALT键按下。

参 数3: 鼠标抬起时的X坐标

参 数4: 鼠标抬起时的Y坐标

KeyDown

描 述: 按下按键时触发

参 数1: 整数,按下按键的ASCII码

参 数2: 整数,0~7位是按键的扫描码,目前按键的扫描码恒为0。

KeyUp

描 述: 按键抬起时触发

参 数1: 整数,按下按键的ASCII码

参 数2: 整数,0~7位是按键的扫描码,目前按键的扫描码恒为0。

Load

描 述: 窗口装载时触发

Unload

描 述: 窗口关闭时触发

事件应用

我们以在用户窗口中单击鼠标左键打开子窗口这个实例,说明用户窗口事件的应用。在用户窗口中打开编辑下拉菜单选中事件菜单,或者在用户窗口单击鼠标右键弹出右键菜单选中事件,就会弹出事件组态对话框。如图7.7-1:

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(3)

图7.7-1 事件组态对话框

如果选中Click事件,就会在Click对应的行右边出现

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(4)

标签,鼠标左键单击

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(5)

标签,会弹出如图7.7-2的对话框。

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(6)

图7.7-2 事件参数连接

昆仑组态软件名称怎么改(昆仑组态的用户窗口)(7)

图7.7-3 脚本编辑

单击事件连接脚本弹出如图7.7-3所示的脚本程序编辑框,可以直接在编辑框内输入!OpenSubWnd(子窗口,150,200,100,100,0),或者打开右边用户窗口,选中要加入子窗口的用户窗口,打开方法,选中OpenSubWnd()方法双击。这样在工程运行时在选中的用户窗口内,单击鼠标左键时就会弹出如下图所示的子窗口。关于窗口方法OpenSubWnd()用法请参阅前面用户窗口属性方法一节。

,