中国开发网: 论坛: 程序员情感CBD: 贴子 113712
有狐
小小修正一下
试验证明:
脚本可以直接访问宿主的类和对象(TestObject),
脚本可以取得宿主的对象(TestObject)的属性(.Text),
脚本可以设置宿主的对象(TestObject)的属性事件(.OnChange),并把自己的函数地址传给了它(事件)

-->

试验证明:
脚本可以访问已经在宿主程序中向脚本引擎注册的宿主的类和对象(TestObject),
脚本可以读写已经在宿主程序中向脚本引擎注册的宿主的对象(TestObject)的属性(.Text),
脚本可以读写已经在宿主程序中向脚本引擎注册的宿主的对象(TestObject)的属性事件(.OnChange),并把自己的函数地址传给了它(事件)


这个注册过程灵活不了,所以在用脚本系统时,需要闹清楚到底需要注册什么样的东西,注册多少东西。
不过这个不是大问题,已经很爽了,呵呵。

另外:
一些基本的特性,比如各种数据类型(包括record,variant),各种控制语法(IF,While,For之类)肯定是支持的
脚本访问宿主中定义的函数也是没问题的,那个例子自己就有一个ImportTest函数
脚本中创建和调用COM组件、调用WinAPI也是没问题的,下载的包里有例子


至于反方向,就是宿主访问脚本,也是没问题的
不过我觉得反方向肯定无法按照“正规”的方式,
比如在宿主中调用脚本中的函数,我估计不行
只能用变通的方式,比如我的那个例子一样,宿主传递一个带有足够信息的类给脚本去处理,
通过可读写属性来接受返回值和输出值
另外通过在宿主中定义回调函数并注册让脚本调用也是个方法
我觉得对宿主来说,很多时候一个脚本文件内容就相当于一个可定制的函数

似乎利用这个脚本,已经可以做一个比较完整的可视化设计的脚本式Delphi了。

研究研究这个东西应该能带来很多有意思的想法,有时间得好好看看。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录