执行动态的delphi脚本


======================================================
注:本文源代码点此下载
======================================================

如何在程序中执行动态生成的delphi代码

经常发现有人提这类问题,或者提问内容最后归结成这种问题

前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧。

这里提供三种方法,都是借助第三方的组件来实现的。

1、microsoft windows script control(http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en)

这是微软的东西,ocx的,我对ocx的东西一向没什么好感,:)但总算是解决问题的一个方法。

到以上地址下载回来sct10en.exe,这是个安装程序,安装完成以后,在安装目录里有一个msscript.ocx,就是它了。

在delphi中import ocx...导入安装,在窗体上添加一个tscriptcontrol类的实例。

设置好它的scriptanguage属性:vbscript,jscript...ie认识的它都认识,没有object pascal?不要急,好戏总是放在后头嘛...

以vbscript为例:

运行脚本:scriptcontrol1.executestatement('msgbox("runing....")');

计算公式:showmessage(scriptcontrol1.eval('1+1'));

优点:皇家的东西,相信它,没错的

缺点:发布程序带个ocx,只能支持微软的script

2、dream collection中的dcscripter(ftp://202.117.210.28/file/dream4.rar)

安装好以后在控件面板dreamcompany里面有一个向右的黑色箭头,就是它了。

以vbscript为例:

运行脚本:dcscripter1.script.add('msgbox("script runing...")');

dcscripter1.run;

计算公式:showmessage(dcscripter1.evaluate('1+1'));

优点:vcl的,除支持微软的脚本以外,还支持perl,python

缺点:还是不支持object pascal...(别打,就来了...)

3、delphiwebscriptii(http://prdownloads.sourceforge.net/dws/dws2src11.zip)

这个东西好啊,功能超强,太强了,太强了,真强...

安装完成以后,将tdelphiwebscriptii,tdws2guifunctions加入窗体,引用dws2exprs单元。

运行脚本:

var

prg: tprogram;

begin

prg := delphiwebscriptii1.compile('showmessage(''hi'');');

prg.execute;

end;

这个东西是用稍微复杂一点,不过看看demo吧,接下来的造化就看你自己的了。

优点:vcl的,功能超强,支持object pascal...

缺点:只支持object pascal...

以上三个各有忧缺点,大家可能比较欣赏delphiwebscript的功能,但是我觉得如果是给用户使用的话,还是dream scripter比较好,毕竟vbscript等比较容易为用户所接受。其实现在很多网管等都很习惯于利用系统提供的com对象,使用纯脚本进行编程。很方便的。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值