在Delphi开发的EXE文件中,还可以再执行用户自定义代码吗? ( 积分: 200 )

  • 主题发起人 主题发起人 blue_morning
  • 开始时间 开始时间
B

blue_morning

Unregistered / Unconfirmed
GUEST, unregistred user!
比如定义计算字段的计算方法我想在程序使用时再定制。
好像我看到郭玉梁的ERP中可以进行这样的操作,他是如何做到的?
 
使用公式解析组件或者将脚本引擎编译到EXE中。
 
shunzi1220 :
可以再准确些吗?
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=26273
 
有小型的编译器。里面可以写一些简单的代码和计算规则。
 
脚本解释。代码看fastreport(4.11)里有
 
我准确的描述一下我的想法:
有一个DataSet,其中有两个数值字段:Number和UnitPrice。(数量和单价)和一个计算字段clTotalPrice(总价)。
在DataSet中如果我们要计算出clTotalPrice的值,那么传统的作法是在DataSet.OnCalcFields事件中写如下的代码:
DataSet['clTotalPrice'] := DataSet['Number'] * DataSet['UnitPrice'];
但现在我想把这段代码放到程序运行时再来定制。那么应该如何来操作。
 
见过一个是把培植文件写的流资源里在 res 文件里 可以从新编译exe 文件的 ,
 
发行后在客户机器上重新编译的方法
在我这里估计无法行得通。
 
自带一个小型的脚本解释器吧!现在这种东西有很我种,我个人用到的PasScript还可以,用法也相对简单;参见
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2892906
 
RemObjects PascalScript 或者 JCL中的JclExprEval 都行。前者功能强大,但用起来稍复杂,后者专对公式,简单易用。都是开源的,建议用后者。当然,还有其他开源的公式开发包,google上搜搜应该有好多,或者去 tomore,2ccc,delphifans中看看。
 
脚本引擎当然可行,解决你的问题可能稍嫌复杂。
最简单的方式是将可能的条件和结果抽取出来,定义成一个函数。在你的系统中提供一个默认实现,然后可以运行时通过配置Load另外一个dll,修改这个实现。
 
因为我从来没有用过脚本控件。我想要解决的问题,各位用过的是否可以描述一下如何解决。
barton:谢谢你提供一个解决问题的思路。
 
fasterreport3.X版本的里面不就可以支持脚本,可以看看里面的源码啊
 
后退
顶部