• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

执行动态的delphi脚本

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

如何在程序中执行动态生成的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对象,使用纯脚本进行编程。很方便的。 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[教学]DelphiIDE文件搜寻功能发布时间:2022-07-18
下一篇:
delphi下实现控制其它窗体中的控件发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap