学innosetup实践fastscript(delphi)
2007-05-07 15:45
176 查看
常常遇到要写一些客户端程序,其中90%以上的代码都是一样的,但10%是不一样的。
最土的办法自然是copy一个老程序过来,改一点就行了。但是从软件重用精神讲还是处于初级阶段。
但那些不同之处又是不能通过参数来调整这么简单的,有时还非得代码不可。
我能想到的对策就是2种:插件和脚本。
插件比较重量级,需要编译,需要开发环境。适合逻辑比较复杂的情况。
脚本一般由于不能设断点调试,文本编辑器就可以了,适合逻辑比较简单的情况。
但是插件和脚本逻辑上是完全一样的,都是定义一组回调函数以符合预定义的接口规范,供主程序调用。
因为我最近又实践了一下脚本语言,
不怕丢脸,主程序还是Delphi,脚本还是fastscript.
我自己其实也希望是Java跟javascript/JRuby/Groovy的组合,下次有机会吧,至少原理是一样的吧。
界面:略。
我定义了3个事件:
AfterScan(var SN,Index)
Verify(SN,var ErrMsg):boolean
Submit(SN[])
这样以来,主程序的逻辑就比较简单:
1 用户扫描SN,调用AfterScan(),比如Trim(),或者大小写转换,加前缀等。
2 调用Verify(),如果校验失败就提示错误信息并要求重新输入,成功就继续。
3 最好调用Submit(),因为这里变化比较多。到底要怎么处理这些SN完全凭脚本的定义了。常见的是保存到哪个表。
这样一来,我就把不变的部分逻辑用主程序实现。
变化的部分用脚本定义。
主程序随时可以根据用户的选择,装入不同的脚本,实现不同的业务处
理逻辑。
原来的好多个模块估计就这样可以用一个主程序替换掉了。
最土的办法自然是copy一个老程序过来,改一点就行了。但是从软件重用精神讲还是处于初级阶段。
但那些不同之处又是不能通过参数来调整这么简单的,有时还非得代码不可。
我能想到的对策就是2种:插件和脚本。
插件比较重量级,需要编译,需要开发环境。适合逻辑比较复杂的情况。
脚本一般由于不能设断点调试,文本编辑器就可以了,适合逻辑比较简单的情况。
但是插件和脚本逻辑上是完全一样的,都是定义一组回调函数以符合预定义的接口规范,供主程序调用。
因为我最近又实践了一下脚本语言,
不怕丢脸,主程序还是Delphi,脚本还是fastscript.
我自己其实也希望是Java跟javascript/JRuby/Groovy的组合,下次有机会吧,至少原理是一样的吧。
界面:略。
我定义了3个事件:
AfterScan(var SN,Index)
Verify(SN,var ErrMsg):boolean
Submit(SN[])
这样以来,主程序的逻辑就比较简单:
1 用户扫描SN,调用AfterScan(),比如Trim(),或者大小写转换,加前缀等。
2 调用Verify(),如果校验失败就提示错误信息并要求重新输入,成功就继续。
3 最好调用Submit(),因为这里变化比较多。到底要怎么处理这些SN完全凭脚本的定义了。常见的是保存到哪个表。
这样一来,我就把不变的部分逻辑用主程序实现。
变化的部分用脚本定义。
主程序随时可以根据用户的选择,装入不同的脚本,实现不同的业务处
理逻辑。
原来的好多个模块估计就这样可以用一个主程序替换掉了。
相关文章推荐
- 用fastscript做delphi的解释器
- fastscript调用delphi方法和DELPHI调用FASTSCRIPT方法
- fastq to tasta using linux shell script
- delphi fastreport qrcode 完美解决方案,无 DLL
- Delphi 与 DirectX 之 DelphiX(24): TDirectDrawSurface.Blt()、BltFast();
- delphi调用c动态库实践
- 【笨嘴拙舌WINDOWS】实践检验之剪切板查看器【Delphi】
- FastReport for delphi xe 安装步骤
- Delphi中使用WebBrowser控件中载入的页面的script
- FASTSCRIPT脚本实现多国语言
- Delphi之操作Word实践
- FastScript脚本使用白皮书(Ver1.0)
- FASTSCRIPT脚本实现多国语言
- DELPHI XE5 UP2 无真机输出 APP并转换为IPA(实践整理)
- 运筹学算法与编程实践??Delphi实现
- Json实践(一):fastjson和gson简单效率测试
- 任务栏通知区域小图标的编程实践(DELPHI版)
- fast report for delphi
- 深度学习实践课程--fast.ai 资料整理
- Delphi FastReport 打印条码