用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
紫金桥软件技术有限公司
企业空间 > 案例应用 > 正文
  • 浅谈紫金桥软件的动态生成脚本
  • 发布时间:2014/5/14 9:22:46   修改时间:2014/5/14 9:22:46 浏览次数:831
  •  

    在多样化的时代里,各种各样的需求也越来越多样化,为了满足客户能在运行环境下开发脚本的需求,紫金桥软件提供了“脚本编辑”和“脚本编译”组件。

    脚本由脚本名称、脚本内容和脚本说明三个部分构成。我们编译或执行一段脚本之前,必须知道要编译或执行的脚本名称。脚本说明是对脚本进一步的说明,它是可有可无的,具体情况依据需求而定。

    要想动态的生成脚本,首先需要一个编辑脚本的环境,这时用到“脚本编辑”组件;编写完脚本之后,需要编译和执行脚本,这时用到“脚本编译”组件。

    一.脚本编辑

    “脚本编辑”组件可以在“脚本编辑”组件内编写代码,在编写的过程中会提示脚本信息,如下图所示。


     

    “脚本编辑”组件提供了一个属性,名称为Text,通过该属性可以设置和获取脚本内容。

    二.脚本编译

    “脚本编译”组件实现了在工程运行环境下对指定脚本进行编译的功能,该组件在运行环境下不显示。由“脚本编译”组件生成的脚本,是以脚本名称作为编译及执行的唯一标识的。因此,由同一个“脚本编译”组件生成的脚本名称必须不同;而由不同的“脚本编译”组件生成的脚本,其脚本名称可以相同。

    “脚本编译”组件进行编译和执行脚本的过程如下:

    1.使用Compile/ CompileEx函数对给定的表达式或程序进行编译。

    Compile函数:bool Compile(string Name,string Text)

    CompileEx函数:bool CompileEx(string Name,string Comment,string Text)

    其中Name:脚本名称;Comment:脚本说明;Text:脚本内容。

    2.Compile/ CompileEx函数返回的值是0,说明编译失败,这时可以使用GetError函数得到错误信息;若Compile/ CompileEx函数返回的值是非0,说明编译成功。

    3.编译成功后,使用Execute函数去执行Compile/ CompileEx函数编译产生的执行码。

    Execute函数:bool Execute(string Name)

    其中Name:脚本名称。

    除此之外,还可以通过GetComment函数得到脚本的说明。如果脚本中有表达式,可以使用GetResultInt/GetResultReal/GetResultText函数去获得表达式的值,例如脚本中的代码如下:

    #w_rect.GetObjHeight()*#w_rect.GetObjWidth()//计算矩形面积

    可以使用GetResultInt函数得到矩形面积。

    “脚本编译”组件还可以将生成的脚本保存到文件中,同时也可以从文件中读取已保存的脚本。将生成的脚本保存到文件中有两种用法:一种是保存到其所在窗口文件中,另一种是保存为DAT格式的文件。

    1.保存到其所在窗口文件中

    双击“脚本编译”组件会弹出其属性设置框,将“负责保存脚本与编译结果”项勾选上,如下图所示。

     


     

    在工程运行环境下,“脚本编译”组件就可以将生成的脚本保存到窗口文件中,但若要永久保存以待下次调用,需将窗口文件保存,可以使用窗口的Save函数将窗口文件保存。

    2.保存为DAT格式的文件

    使用“脚本编译”组件的Save函数将生成的脚本保存到DAT格式的文件中,例如:

    #w_compile.Save("F:\a.dat");// w_compile是脚本编译组件的名称

    然后使用Load函数从文件中读取所保存的脚本,例如:

    #w_compile.Load("F:\a.dat");

    三.示例

    本示例简单的展现如何在运行环境下编写脚本,初始画面如下图所示。


     

    矩形对象的名称是w_rect

    “编译”按钮里的代码:

    string text;

    if !#w_compile.CompileEx("a","这是个示例。",#w_script.Text) then

       #w_compile.GetError(text);//w_compile是脚本编译组件的名称。

       text = text + "------编译失败!";

       MsgBoxEx(text,"编译结果提示框",0);//弹出只有确定功能的提示框。

    else

       MsgBoxEx("编译成功!","编译结果提示框",0);

    endif

    “执行”按钮里的代码:

    #w_compile.Execute("a");//a是脚本名称。

    “获得运算结果”按钮里的代码:

    #w_compile.Execute("a");

    #w_edtReturn.Val = #w_compile.GetResultInt();

    当脚本是表达式时,可以点击此按钮去获取表达式运算的结果。在此以GetResultInt函数为例子去获取表达式运算的整型值,如果想要获得实型值或字符型结果,可以使用GetResultRealGetResultText函数。注意GetResultInt函数使用时必须和Execute函数在同一个函数体内。

    准备工作已经就绪,现在开始实现在运行环境下动态编写脚本、编译和执行脚本的功能。

    1.在运行环境下改变矩形对象的颜色和位置

    在“脚本编辑”组件内编写代码如下:

    #w_rect.FillColor = 0;//改变矩形对象填充色为红色

    #w_rect.Y = #w_rect.Y*2;//改变矩形对象的位置

    点击“编译”按钮,会弹出提示框,如下图所示。

     


     

    提示框的提示信息说明编译成功,然后点击“执行”按钮,执行结果如下图所示。

     


     

    2.在运行环境下计算矩形面积

    在“脚本编辑”组件内编写代码如下:

    #w_rect.GetObjHeight()*#w_rect.GetObjWidth()//计算矩形面积

    点击“编译”按钮,提示编译成功,然后点击“获得运算结果”按钮,“获得运算结果”按钮前的文本框中会显示矩形面积,执行效果如下图所示。

     


     

    函数的具体用法可以参考紫金桥软件的帮助手册。

  • 企业介绍
紫金桥软件技术有限公司(RealSoft)是由中石油出资成立的专门从事计算机软件产品开发的高新技术企业,是中国石油天然气集团的软件开发基地。公司专注于自主知识产权软件产品“实时数据库系统”和“监控组态软件”的开发与推广工作,以为企业集团及客户…  更多>>
  • 联系方式

紫金桥软件技术有限公司

联系人:李磊

地址:黑龙江省大庆市高新区服务外包产业园C1-817室

邮编:163316

电话:400-6996-515

传真:0459-8151391-808

公司网址:http://www.realsoft.cc

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件:
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 戴永铁 在2024/6/11 14:51:00留言
  • 留言类型:贵公司产品销售人员联系我,贵公司技术支持人员联系我,
  • 详细留言:需要制药工业领域的实时库报表,包含矩阵配?、参数配方、数据(统计和历史)、曲线、事件、报警、审计追踪,这些内容可以组态化
  • 晓同 在2024/5/16 11:06:00留言
  • 留言类型:我让贵公司产品销售人员联系我,
  • 详细留言:紫金桥组态软件V6.5,512点授权
  • 在2023/10/21 16:03:00留言
  • 留言类型:贵公司技术支持人员联系我,
  • 详细留言:OPC
  • 郑鑫汶 在2023/6/1 14:58:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:需要咨询贵公司软件的价格功能
  • 吴吉校 在2023/3/15 7:45:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:组态软件咨询
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈