HandlePage

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

HandlePage

Previous pageReturn to chapter overviewNext page

 

函数说明:

   HandlePage Param,OldTagName,NewTagName

   在主视图中根据不同的参数处理页面。

   Param:页面参数,字符串;

   OldTagName:被替换的变量名称,字符串/数组,可以不设;

   NewTagName:替换的变量名称,字符串/数组,可以不设;

   无返回值。

 

   Param参数如下:

   /page:页面参数

         如/page:sample,aaa.bsp;bbb.bsp;

        脚本:sys.handlepage "/page:sample,aaa.bsp;bbb.bsp;"

         sample是/project/zt下的文件夹名;aaa.bsp和bbb.bsp是sample文件夹下的组态画面文件;

         打开sample文件夹下的aaa.bsp及bbb.bsp

         如/page:folder\aaa.bsp;

        脚本:sys.handlepage "/page:folder\aaa.bsp;"

         folder是/project/zt下的文件夹名;aaa.bsp是folder文件夹下的画面文件;

         打开folder文件夹下的aaa.bsp

   /size:是组态运行程序的位置尺寸参数,x坐标,y坐标,宽,高

         如/size:0,0,700,700,

        脚本:sys.handlepage "a.bsp; /size:0,0,700,700"

         组态运行程序的顶点坐标为0,0,宽高为700,同时打开a.bsp页面

   /notitle:不显示标题栏

         组态运行程序不显示标题栏

        脚本:sys.handlepage "a.bsp; /notitle"

   /noresize:不允许拉伸

         组态运行程序不允许拉伸

        脚本:sys.handlepage "a.bsp /noresize"

   /param:如果有参数,则会触发画面的OnNotifyMsg事件,并把参数传递给该事件

         如/param:abcd,

        脚本:sys.handlepage "a.bsp /param:abcd"

         打开a.bsp同时向a.bsp传递abcd这个字符串,a.bsp的OnNotifyMsg事件会获取abcd这个字符串;

   /param2:OnNotifyMsg事件的第二个参数,整型

         如/param2:1,

        脚本:sys.handlepage "a.bsp /param:abcd /param2:1"

         打开a.bsp同时向a.bsp传递abcd这个字符串和整数1,a.bsp的OnNotifyMsg事件会获取abcd这个字符串和整数1;

         必须有/param:才能传递/param2

   /pagesize:画面显示的位置参数,x坐标,y坐标,宽,高

         如/pagesize:0,0,300,300

        脚本:sys.handlepage "a.bsp /pagesize:0,0,300,300"

         打开a.bsp且画面顶点位置为0,0,画面宽高为300

        如果画面属性勾选了窗口自适应画布,则pagesize中设置的宽高将不生效;

  /closeothersbut:关闭其他画面除了

         如/closeothersbut:a.bsp

        脚本:sys.handlepage "b.bsp /closeothersbut:a.bsp"

         打开b.bsp,同时关闭其他画面除了a.bsp

   /canvassize:设置画布大小

         如/canvassize:200,200

        脚本:sys.handlepage "a.bsp /canvassize:200,200"

         打开a.bsp,画布大小为200,200

   /pagetitle:设置画面标题

         如/pagetitle:abcd

        脚本:sys.handlepage "a.bsp /pagetitle:abcd"

         打开a.bsp,并将画面标题设置为abcd

   /pagealias:新开一个窗口,并设置别名,如果一个画面需要同时打开多次,使用此方法

         如/pagealias:a1

        脚本:sys.handlepage "a.bsp"

               sys.handlepage "a.bsp /pagealias:a1"

         则a.bsp打开了两次,其中有一个窗口的别名是a1,关闭窗口也需要通过别名

   /closepages:a.bsp;b.bsp 关闭某个或多个页面

         如/closepages:a.bsp;b.bsp

        脚本:sys.handlepage "/closepages:a.bsp;b.bsp"

         关闭a.bsp和b.bsp页面

        脚本:sys.handlepage "/closepages:a.bsp /pagealias:a1"

         关闭a.bsp且别名为a1的页面

   /pageflag:0,a.bsp;b.bsp; 0,1,2,3,4显示、隐藏、最大化、最小化、恢复页面

         如/pageflag:1,a.bsp;b.bsp;

        脚本:sys.handlepage "c.bsp /pageflag:1,a.bsp;b.bsp;"

         打开c.bsp的同时隐藏a.bsp和b.bsp

   /exactreplace 精确替换

         配合OldTagName,NewTagName使用

        脚本:sys.handlepage "a.bsp /exactreplace","scada1.taga","scada1.tagb"

         打开a.bsp,并且a.bsp中动画关联了scada1.taga的变量替换成scada1.tagb,这是精确替换,即scada1.tagacc是不会被替换的

   /pageparams:param1,param2,param3,param4 设置页面参数,最多四个

        脚本:sys.handlepage "a.bsp /pageparams:p1"

         打开a.bsp,并且设置页面参数即page.param1为p1

        脚本:sys.handlepage "a.bsp /pageparams:p1,p2,p3,p4"

         打开a.bsp,并且设置页面参数即page.param1为p1,page.param2为p2,page.param3为p3,page.param4为p4

   /winpos:100,100 设置页面显示位置

        脚本:sys.handlepage "a.bsp /winpos:100,100"

         打开a.bsp,并且页面顶点位置在100,100上

   /winsize:500,500 设置页面宽高

        如/winsize:500,500

        脚本:sys.handlepage "a.bsp /winsize:500,500"

         打开a.bsp且画面宽高为500

        如果画面属性勾选了窗口自适应画布,则设置的宽高将不生效;

   /mode:0,1 0 置于最顶层 1 showmodel /mode:1,title,left,top,width,height,1(关闭按钮灰化)

         如/mode:0

        脚本:sys.handlepage "a.bsp /mode:0"

         打开a.bsp且页面置于最顶层

         如/mode:1

        脚本:sys.handlepage "a.bsp /mode:1"

         以有模对话框的模式打开a.bsp页面

        脚本:sys.handlepage "a.bsp /mode:1,title"

         以有模对话框的模式打开a.bsp页面且标题为title

        脚本:sys.handlepage "a.bsp /mode:1,title,100,100,300,300"

         以有模对话框的模式打开a.bsp页面,标题为title,顶点坐标为100,100,宽高为300

        脚本:sys.handlepage "a.bsp /mode:1,title,100,100,300,300,1"

         以有模对话框的模式打开a.bsp页面,标题为title,顶点坐标为100,100,宽高为300,且对话框右上角的关闭图标灰化

   /translate:ZH_TW 设置页面语言

        如/translate:ZH_TW

        脚本:sys.handlepage "a.bsp /translate:ZH_TW"

         打开a.bsp且自动切换画面语言为繁体中文,需要存在该画面的繁体中文语言文件

   其他脚本如

      sys.handlepage "b.bsp"

      sys.HandlePage "/page:aaa.bsp;bbb.bsp; /param:notifymsg /param2:1"

      sys.HandlePage "/page:sample,aaa.bsp;bbb.bsp; /size:0,0,700,700, /notitle /noresize"

      sys.HandlePage "/page:sample,aaa.bsp;bbb.bsp; /size:0,0,700,700, /notitle /noresize /param:notifymsg /param2:1"

      sys.HandlePage "abc\b.bsp"

      sys.HandlePage "a.bsp","tag1","tag2"

      sys.handlepage xxx.bsp "object_1" "object_2"

 

举例1:

   通过a页面的一个按钮打开b页面,并传递两个参数

   在a.bsp的画面中加载一个Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       sys.HandlePage "/page:b.bsp; /param:notifymsg /param2:1"

   End Sub

   在b.bsp的画面的脚本编辑器中编辑OnNotifyMsg事件如下:

   Sub page_OnNotifyMsg(strParam, nParam2)

       MsgBox strParam

       MsgBox nParam2

   End Sub

   运行a.bsp画面,点击Button,b.bsp打开,并弹出消息框notifymsg和1。

 

举例2:

   通过a页面的一个按钮打开b页面,设置b页面的大小、位置及标题,并将b页面关联动画中的taga替换成tagb

   在a.bsp的画面中加载一个Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       sys.HandlePage "/page:b.bsp; /pagetitle:test /pagesize:100,100,300,300","taga","tagb"

   End Sub

 

举例3:

   通过a页面的BSButton1按钮打开b页面,并将b页面关联动画中的taga替换成tagb,tagc替换成tagd

   在a.bsp的画面中加载一个Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       Dim a

       a = Array("taga","tagc")

       Dim b

       b = Array("tagb","tagd")

       sys.HandlePage "/page:b.bsp",a,b

   End Sub

 

举例4:

   通过a页面的BSButton1按钮打开b页面,设置b页面的标题为test,BSButton2按钮打开另一个b页面,设置标题为test2,

BSButton3按钮关闭两个b页面

   在a.bsp的画面中加载三个Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       sys.HandlePage "/page:b.bsp; /pagetitle:test"

   End Sub

   Sub BSButton2_OnClick()

       sys.HandlePage "/page:b.bsp; /pagetitle:test2 /pagealias:2"

   End Sub

   Sub BSButton3_OnClick()

       sys.HandlePage "/closepages:b.bsp"

       sys.HandlePage "/closepages:b.bsp /pagealias:2"

   End Sub

 

举例5:

   通过a页面的BSButton1按钮以有模对话框的方式打开b页面,设置标题为test,并将b页面关联动画中的taga替换成tagb

   在a.bsp的画面中加载Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       sys.HandlePage "/page:b.bsp; /mode:1,test,100,100,300,300","taga","tagb"

   End Sub

 

举例6:

   c、d页面已打开,通过a页面的BSButton1按钮打开b页面,并关闭c、d页面,不关闭a页面

   在a.bsp的画面中加载Button对象,在脚本编辑器中编辑该Button的Click事件如下:

   Sub BSButton1_OnClick()

       sys.HandlePage "/page:b.bsp; /closeothersbut:a.bsp"

   End Sub

 

举例7:通过一个页面的BSButton1按钮打开b的画面的同时,将b界面的对象object_1替换成object_2。

   Sub BSButton1_OnClick()

    sys.handlepage b.bsp "object_1" "object_2"

   End Sub