http://www.cnblogs.com/railgunman/articles/1824304.html

BAIDU一下ScriptControl,大多数都是“Delphi中ScriptControl的高级应用(一)”,从CSDN上拷贝过来的,讲得很浅。看得我都无语了。不知有谁能提供更深入的学习资料。
下面是ScriptControl的API。也是从网上找的:(原地址:http://home.id666.com/user/setoutsoft/disk/myhome/ScriptDemo.htm

ScriptControl接口

属性名称

类型

备注

AllowUI

BOOL

检测是否允许运行用户的接口元素。如果为False,则诸如消息框之类的界面元素不可见。

CodeObject

Object

脚本暴露给宿主调用的对象。只读。

Modules

Modules

宿主提供给脚本的组件库模块。只读。(COM组件通常都是以对象收集的形式向用户提供可以留给用户二次开发的对象集合,每一个收集即一个Modules)

Language

String

设置或获取脚本引擎解释的语言,例如:VBScript、JScript。

Name

String

脚本引擎的名称。只读。

Procedures

Procedures

返回模块中定义的过程的集合

SitehWnd

HWND

在脚本中显示UI的父窗口句柄

State

Enum

设置或返回控件的状态,如果为0,控件只执行语句但不转发事件,为1则为加入的本控件接受的对象转发事件。

Timeout

Long

控件的执行脚本的超时值,-1表示不超时

UseSafeSubset

BOOL

设置或返回宿主程序是否关心安全。宿主程序的安全级别可以从此属性设置

Error

Error

错误对象,发生错误时,此属性返回一个错误对象

方法名称

参数

功能

AddCode

Code As String

往脚本引擎中加入要执行的脚本

AddObject

Name As String, Object As Object, [AddMembers As Boolean = False]

往脚本引擎加入一个对象,以便在脚本中可以使用该对象提供的方法等。

Eval

Expression As String

表达式求值

ExecuteStatement

Statement As String

解释并执行脚本语句

Reset

丢弃所有的对象和代码,将State属性置0。

Run

ProcedureName As String, ParamArray Parameters() As Variant

运行一个指定的过程

事件名称

功能

Error

有错误发生时激发该事件

TimeOut

执行过程超时时发生

一般使用方法

1、在程序中加入ScriptControl

2、定义一个ScriptControl的实例

3、调用AddCode等方法向脚本引擎中加入要执行的脚本。

4、调用Run执行要执行的脚本函数。

-----------------------------------------------------------------------
一般说来,ScriptControl都是用来做以下几种事情。
1. 计算表达式的值,如scriptObj.Eval('100+200*3/5-9');
2. 用来对script进行加密(escape)和解密(unescape).
3. 用Procedures进行脚本的添加和执行.

---------

function TForm1.DoCaculate(exp: string): string;
var
  script: Variant;
begin
  script := CreateOleObject('ScriptControl');
  script.Language := 'JavaScript';
  Result := script.Eval(Exp);
end;

ScriptControl接口的更多相关文章

  1. MSScriptControl详解(可实现在C#等语言中调用JAVASCRIPT代码)

    ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...

  2. vc++调用msscript.ocx解析实现C++与JavaScript脚本交互

    ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...

  3. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  4. 干货来袭-整套完整安全的API接口解决方案

    在各种手机APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优 在以前WEB API概念没有很普及的时候,都采用自已定义的接口和结构,对 ...

  5. 12306官方火车票Api接口

    2017,现在已进入春运期间,真的是一票难求,深有体会.各种购票抢票软件应运而生,也有购买加速包提高抢票几率,可以理解为变相的黄牛.对于技术人员,虽然写一个抢票软件还是比较难的,但是还是简单看看123 ...

  6. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  7. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  8. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  9. 【WCF】自定义错误处理(IErrorHandler接口的用法)

    当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...

随机推荐

  1. [Python3] 012 元组:list,我们不一样!

    目录 0. 元组的独白 1. 元组的创建 2. 元组的特性 (1) 概述 (2) 少废话,上例子 1) 索引 2) 分片 3) 序列运算 4) 成员检测 3. 元组的遍历 (1) 简单总结 (2) 少 ...

  2. [Python3 填坑] 010 isalpha() 对于字母的定义

    目录 1. print( 坑的信息 ) 2. 开始填坑 官方文档 1. print( 坑的信息 ) 挖坑时间:2019/01/14 明细 坑的编码 内容 Py009-1 isalpha() 理当只有输 ...

  3. Developer Express 第三方控件使用系列方法

    本人目前从事的开发工作主要是以C#语言进行的相关C/S的开发,在工作中也要求使用Developer Express第三方控件所以这一系列的控件使用说明都将以C#语言进行代码说明.平时工作中会慢慢的收集 ...

  4. 数组方法之reduce实践

    Array.prototype.reduce let arr = [1, 2, 3, 4], sum = arr.reduce((prev, curr, index, arr) => { ret ...

  5. git多账号配置,同时使用多个代码托管平台

    git多账号配置,同时使用多个代码托管平台:https://blog.csdn.net/pinnuli/article/details/81293071

  6. Dubbo源码学习总结系列三 dubbo-cluster集群模块

    Dubbo集群模块的目的是将集群Invokers构造一个透明的Invoker对象,其中包含了容错机制.负载均衡.目录服务(服务地址集合).路由机制等,为RPC层提供高可用.高并发.自动发现.可治理的S ...

  7. Linux架构之Nginx 负载均衡会话保持

    案例No.50:Nginx负载均衡会话保持 前期准备环境 web01.web02 (web01.web02.db01.nfs01都要优化基本源)[root@web01 ~]# vim /etc/yum ...

  8. Linux 性能测试工具 sysbench 的安装与简单使用

    文章目录 Linux 性能测试工具 sysbench 的安装与简单使用        一 背景        二 实验环境            2.1 操作系统            2.2 其他配 ...

  9. Git的配置与基本操作

    Git是一个版本控制软件,它可以让我们能够拍摄处于可行状态的项目的快照,修改项目(如实现新功能)后,如果项目不能正常运行,可以恢复到前一个可行状态. 通过使用版本控制,我们可以无忧无虑的改进项目,不用 ...

  10. Task2.特征提取

    参考:https://blog.csdn.net/u012052268/article/details/77825981/ 利用jieba分词工具去除停用词: 停用词:1.在SEO中为节省空间和提高搜 ...