教程-执行动态的delphi脚本
相关资料:https://www.cnblogs.com/linyawen/archive/2011/10/01/2196950.html
如何在程序中执行动态生成的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对象,使用纯脚本进行编程。很方便的。
相关文章
- 104. 【教程】电脑Outlook直接收发邮件的方法( 使用Office365应用密码(Outlook独立密码)MFA )
- Android教程-DelphiXE8怎么使用调试模式(小米手机2)
- Spring Boot 2.0 配置图文教程
- 最详细在Windows安装Xamarin.iOS教程
- 【OpenCV-Python】教程:3-9 轮廓(5)轮廓层级
- 【第3版emWin教程】第32章 emWin6.x的矢量字体(支持汉字全字库,Unicode编码,QSPI Flash方案)
- 【STM32F407&F429&H7的DSP教程】第34章 滤波器基础知识
- SAP UI5 初学者教程之十一 :SAP UI5 容器类控件 Page 和 Panel 试读版
- 家政服务小程序实战教程07-轮播图组件
- 【ClickHouse SQL 极简教程】使用EXPLAIN 分析 SQL 执行计划
- 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程
- (2022版)一套教程搞定k8s安装到实战 | InitContainer
- FusionCharts简单教程(一)---建立第一个FusionCharts图形
- Pytest自动化框架~权威教程03-原有TestSuite的执行方法