[共享]在程序中执行动态生成的Delphi代码的方法 兼散分

rustle rustle 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如何在程序中执行动态生成的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对象,使用纯脚本进行编程。很方便的。
...全文

相关推荐

Delphi多个DLL共享全局数据Demo

Delphi多个DLL共享全局数据Demo

s11ss

Delphi结合OpenGL的3D图形开发实战

Delphi凭借其强大的RAD(快速应用开发)能力和Object Pascal语言的优雅语法,在3D图形开发领域占据独特地位。尽管非专用于游戏引擎,但通过集成OpenGL API,Delphi可高效构建工业仿真、医疗影像可视化及教育类三维应用。其VCL框架提供稳定的窗口与消息机制,便于封装OpenGL渲染上下文;而Object Pascal的强类型支持与内存管理特性,显著提升复杂场景下资源调度的安全性与可维护性。

Paula-柒月拾

TRichView跨平台开发指南:从Delphi控件到Lazarus迁移实战

图文混排控件是桌面应用开发中的核心组件,它通过结构化文档模型实现复杂格式内容的渲染与编辑。其技术原理在于将文本、表格、图片等元素封装为独立对象,通过样式系统控制视觉呈现,为开发者提供接近专业文字处理软件的文档处理能力。在工程实践中,这类控件能显著提升报表生成、办公系统、内容编辑器等场景的开发效率。随着跨平台需求增长,基于VCL框架的传统控件面临移植挑战。TRichView作为Delphi生态中的老牌图文混排控件,通过提供Lazarus版本支持,为开发者保留了现有代码资产的同时,打开了通往macOS和Linu

weixin_34277853

Delphi 13 Florence 适配 FastReport FMX GPU 渲染指南

FireMonkey(FMX)是 Embarcadero Delphi 跨平台 UI 框架的核心渲染引擎,其绘图模型从 CPU 位图缓存演进为 GPU 着色器管线,带来性能跃升但也引发兼容性断层。Delphi 13 Florence 引入 TCanvasGpu 抽象层与 HarfBuzz 字体度量引擎,彻底重构渲染生命周期与文本布局逻辑,直接影响报表控件的跨平台一致性、高 DPI 显示及触控响应。FastReport FMX v2025.2 正是针对这一架构迁移所作的深度适配,实现 GPU 加速报表渲染 和

ciya3282

Delphi 数据共享及Dll应用代码演示

Delphi 数据共享及Dll应用代码演示! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/

YnSky
评论 43
收藏 已收藏
分享
返回顶部
rustle
Delphi 5,944 成员 262,941 内容