画面属性和方法

Navigation:  组态系统介绍 > 脚本应用 >

画面属性和方法

Previous pageReturn to chapter overviewNext page

 

画面有自身的属性和方法,在脚本编辑器中,输入page,然后输入“.” ,会出现该画面的方法和属性,用户可以选择需要的方法和属性,如下图所示:

zt_editmenu_script_03

 

upage所支持的方法如下:

SetPos

设置对象位置:SetPos strCompName, lLeft, lTop, lWidth, lHeight 对象名称,x坐标,y坐标,宽度,高度

 

GetPos

获取对象位置:GetPos strCompName, lLeft, lTop, lWidth, lHeight 对象名称,x坐标,y坐标,宽度,高度

 

SetLayer

设置画面图层:SetLayer lLayerID, lVisible 图层号,画面是否属于该图层1/0

 

VisibleLayers

获取画面所属图层:VisibleLayers 设置、显示画面所属图层

举例:

显示图层:

如果要显示Ellipse22的所属图层,可以用这个脚本:MsgBox Ellipse22.VisibleLayers,如弹出的是3,则转成二进制则为0011,说明该对象属于第一和第二图层,

如果希望弹出的是十六进制模式,则可以写成:

MsgBox Hex(Ellipse22.VisibleLayers)

设置图层:

设置Ellipse22的所属图层,&H表示十六进制,&H3表示设置该对象属于第一、第二图层,&H3F表示该对象属于1-6图层,设置对象属于所有30个图层的写法是&H3FFFFFFF

Ellipse22.VisibleLayers = &H3

EnableZoom

设置画面是否允许缩放:EnableZoom

page.EnableZoom = 0 不缩放

page.EnableZoom = 1 按照坐标(0,0)为中心缩放

page.EnableZoom = 2 按照鼠标位置为中心缩放

 

GetTagNamesFromComp

获取对象关联的所有变量:GetTagNamesFromComp strCompName, varTagNames 对象名称(为空则为所有对象),所有变量(一维数组)

例子:获取"Ellipse11"对象关联的所有变量

Sub BSButton12_OnClick()

 Dim a

 c = page.GetTagNamesFromComp("Ellipse11",a)

 b = UBound(a,1)

 MsgBox b

 Dim tips

 For i = 0 to b

   d = a(i)

   tips = CStr(tips) + CStr(d) + ","

 Next

 MsgBox tips

End Sub

 

AckTagAlarms

确认变量报警:AckTagAlarms varTagNames 变量(一维数组)

例子:通过GetTagNamesFromComp获取变量数组a,确认a的所有报警

Sub BSButton13_OnClick()

 Dim a(5)

 a(0) = "scada1.tag1.F_CV"

 a(1) = "scada1.tag1.a.F_CV"

 a(2) = "scada2.tag2.b"

 a(3) = "scada2.tag3"

 a(4) = "scada2.tag4"

 page.AckTagAlarms a

End Sub

 

GetAttrValue

获取对象自定义属性的值:GetAttrValue strCompName,strAttrName,pstrValue 对象名称,自定义属性名称,自定义属性值(返回)

例子:获取对象"CusBSButton"的自定义属性"文本"的值

 Dim textValue

 page.GetAttrValue "CusBSButton","文本",textValue

 msgbox textValue

 

SetAttrValue

设置对象自定义属性的值:SetAttrValue strCompName,strAttrName,pstrValue 对象名称,自定义属性名称,自定义属性值

例子:设置对象"CusBSButton"的自定义属性"文本"的值

 page.SetAttrValue "CusBSButton","文本","打开按钮"

 

ZoomIn

画面放大:ZoomIn  脚本:Page.ZoomIn

 

ZoomOut

画面缩小:ZoomOut  脚本:Page.ZoomOut

 

ZoomNormal

画面恢复:ZoomNormal  脚本:Page.ZoomNormal

 

ZoomPan

画面浏览:ZoomPan  脚本:Page.ZoomPan

 

ZoomSelect

画面选择:ZoomSelect  脚本:Page.ZoomSelect

备注:

放大:点击按钮后,鼠标变为放大镜;再在画面上点击鼠标,根据鼠标原点为中心点进行大;

缩小:点击按钮后,鼠标变为缩小镜;再在画面上点击鼠标,根据鼠标原点为中心点进行缩小;

恢复:点击按钮后,鼠标保持不变;画面恢复原来大小;

浏览:点击按钮后,鼠标变为手型;这时若画面大于窗口,可通过鼠标拖动画面;

退出:点击按钮后,鼠标恢复为箭头型,退出缩放功能。

缩放比例:

1.依据画面属性中的最小缩放倍率(min=5%,def=5%)和最大缩放倍率(max=2000%,def=1500%);

2.缩小,依次为:75%、50%、25%、5%;

3.放大,依次为:125%,150%,175%,200%,225%,250%,275%,...

 

GetZoomScale

获取画面缩放比例:GetZoomScale lHorScale,lVerScale 水平缩放比例(返回),竖直缩放比例(返回)

 

SetZoomScale

设置画面缩放比例:SetZoomScale lHorScale,lVerScale 水平缩放比例,竖直缩放比例

 

GetZoomState

获取画面缩放状态:GetZoomState lState 缩放状态(返回)

缩放状态说明:

0 正常选择

1 浏览

2 放大

3 缩小

 

ShowScrollBar

配置是否显示滚动条:ShowScrollBar

page.ShowScrollBar = 1 显示滚动条

page.ShowScrollBar = 0 隐藏滚动条

 

ZoomStepPercent

设置鼠标滚动时的缩放比例 ZoomStepPercent

page.ZoomStepPercent = 10 设置page.EnableZoom = 2 则运行时鼠标滚轮向上滚时,画面每次放大10%,向下滚时,每次缩小10%

 

SetZoomCanvasPos

设置页面当前浏览位置:SetZoomCanvasPos  lHorPos,lVerPos 水平位置(返回),竖直位置(返回)

 

GetZoomCanvasPos

获取页面当前浏览位置:GetZoomCanvasPos  lMaxWidth,lMaxHeight,lHorPos,lVerPos,lViewWidth,lViewHeight 页面当前宽度,页面当前高度,水平位置,竖直位置,窗口宽度,窗口高度

 

ReplaceVar

脚本中替换变量:ReplaceVar  strTagNames 变量名称;需要配合handlepage的变量替换使用

例子:有rv1,rv2两个组态画面

rv1脚本为

Sub Rectangle1_OnClick()

Dim a

a = Array("aaa1","aaa2")

Dim b

b = Array("bbb1","bbb2")

sys.handlepage "rv2.bsp",a,b

End Sub

 

rv2脚本为

Sub Rectangle1_OnClick()

a = page.ReplaceVar ("cdaaa1cd")

MsgBox a

End Sub

 

Sub Rectangle2_OnClick()

Dim b(1)

b(0) = "abaaa1"

b(1) = "abaaa2"

c = page.ReplaceVar(b)

f = UBound(c,1)

MsgBox f

d = c(0)

MsgBox d

d = c(1)

MsgBox d

End Sub

 

运行rv1,点击脚本,打开rv2,且脚本中的变量被替换

 

RegTags

注册变量:RegTags varTagNames 需要注册的变量数组(一维数组)

例子:注册一组变量

Sub BSButton13_OnClick()

 Dim a(5)

 a(0) = "scada1.tag1.F_CV"

 a(1) = "scada1.tag1.a.F_CV"

 a(2) = "scada2.tag2.b"

 a(3) = "scada2.tag3"

 a(4) = "scada2.tag4"

 page.RegTags a

End Sub

 

GetAttrExpr

获取对象自定义属性(Tag点类型)的表达式:GetAttrExpr strCompName,strAttrName,pstrExpr 对象名称,自定义属性名称,自定义属性关联的表达式

 

例子:获取对象"TextEx_Tip"的自定义属性"显示内容"关联的表达式

 Dim content

 page.GetAttrExpr "TextEx_Tip","显示内容",content

 msgbox content

 

Close

关闭当前画面 Close

page.Close

 

SwitchLanguage

切换当前画面语言:SwitchLanguage strLanguage 语言

 

例子:将当前画面语言切换到繁体中文,要求对应的语言文件

page.SwitchLanguage "ZH_TW"

 

 

upage所支持的事件如下:

OnLoad

画面加载:OnLoad

 

OnUnLoad

画面关闭:OnUnLoad

 

OnClick

画面点击:OnClick 在画面上没有图元的地方点击响应该事件

 

OnLButtonDown

画面左键按下:OnLButtonDown(lFlag, lPointX, lPointY) 在画面上没有图元的地方左键按下响应该事件

 

OnLButtonUp

画面左键弹起:OnLButtonUp(lFlag, lPointX, lPointY) 在画面上没有图元的地方左键弹起响应该事件

 

OnRClick

画面右键点击:OnRClick 在画面上没有图元的地方右键点击响应该事件

 

OnGetMsg

画面接收到Ctrl+F*消息:OnGetMsg(nChar, strKeyValue)

运行画面,如果按下Ctrl+F5;

nChar = 116

strKeyValue = "Ctrl+F5"

 

OnNotifyMsg

画面接受到别的画面或外部程序传递的消息:OnNotifyMsg(strParam, nParam2)

 

OnResponseKey

画面键盘消息:OnResponseKey(nChar, nRepCnt, nFlags)

nChar 指定了给定键的虚拟键码。

nRepCnt 重复计数(用户按住键引起的重复击键数目)。

nFlags 指定了扫描码、暂态键码、原来的键状态和上下文代码。

 

在画面运行中,使用快捷键alt+F8,会弹出画面信息对话框,如下:

zt_editmenu_script_04

 

关于系统函数(sys)及对象属性/方法请见系统函数