该示例的运行环境是Dev50,没有的给俄Email:wolf1860@gmail.com
为什么不用DLL做插件?DLL有好多RTTI的问题在Delphi中是解决不了滴,该话题不予讨论。
别外,该程序只有两个插件以上时,才会显示导航栏。自己试试罢
仅提供一个参考思路,供各位有心人共勉。这是我成功实施项目的浓缩版,2010所谓JSON式的三层架构项目,先鄙视一下那些对2010的JSON持怀疑态度的菜包,这个架构稳定易用,喜爱Delphi的同志当立挺之。主程序运行时的EMail地址是我的,发现问题了,希不吝指正。俄一贯不喜欢名词类的概念,追求的是解决问题。本示例解决了三个问题:
1.模块式开发。我没有模仿Eclipse的想法,只是在功能实现的前提下,强调易用,易维护,顺便赚点小钱。该框架的产生就是为Delphi团队协作无间而为,前提只需要一个供多人使用的Global包和其中的单元即可。别外强调一下,这就是为种类繁多的数据库程序写的东东儿。
2.分发不再用代码订制。一个配置文件,加上服务器的职能区分(工作组性质区分)就可以解决问题,涉及权限的模块懒得再改了上传,但如果希望设置权限的话,看看XML文件中form下一层的Action,那是权限设置的根本,一个树形结构,勾选每个窗体的Action应用罢。当然可以联系我:)
3.维护不需要兴师动众。哪个模块有问题,哪个模块把工程拿出来,改完以后编译一下包就带着配置文件走了,客户只需要导入一下插件即可。当然,自动升级也是可以滴。
该范例没有分发主程序的源代码,有需要的话200元外加技术支持,俺是升斗小民,且无业居家,靠心血挣点小钱不过分,先躲鸡蛋了。下面就接着说一下设计思路罢:)
不玩BPL的同志们可以出去了。
界面的友好、美观是进入这行当以来一直追求的,想起插件的时候就琢磨着怎么能够实现Ribbon风格的插件。
1.要用Ribbon,先用Dev。本框架就是Delphi2010+Dev的组件构成的,delphi的版本不限,但dev得在50或以上。俄用滴是50.
2.Ribbon使用传统的MDI非常难看,还不如不用。
3.如果要用Dev,就必须将模块或子系统的窗体Dock到主窗体的一个容器里,但菜单怎么办?功能接口怎么办?要是定义接口的话,那得多么复杂的一个东东儿?想到这几个问题,答案基本上就呼之欲出了,看看三方组件的表现罢。先说一下子模块(子系统)的设计思路:
1.global包中的文件是所有模块的公用文件,您也可以把自己的函数单元等等加到里面
2.global包中的uOriginal单元是所有子模块主窗体的父窗体,不懂继承的,这个框架您就扔垃圾堆好了,我肯定感激您。
3.uOriginal中只定义了一个GetData的虚方法,需要的话可以扩充。
4.uDM单元装了系统共用的东东儿,如:数据库连接(俄就是放在这儿),需要Repository的子控件、styleRepository,ImageList等等。示例中只放了ImageList和Skin,就是让程序看起来不寒碜。您想放什么就继续放好了。
5.uSysClass单元中,定义了两个类,没有浓缩。一个User是系统登录的,您可以在它的DeployFileName属性中定义配置文件,另一个Plugin,是用来生成插XML文件(供主程序装载),生成XML的单元还有一个uCreateXML.pas,您不需要做任何修改。
制作插件的具体操作:
1.建立vcl Application工程,将自动生成的unit1移除。
2.添加global目录中的文件,全部添加罢,俄懒得细分了。
3.新建一个inheritable Items项中的FrmOriginal窗体,随便命名,做为该程序的主窗体,其余的是不是静态生成,自己看着办。唯一不能忘的是在最后加入initialization registerClass(T~) ; finalization unRegisterClass(T~).
4.点出新建的窗体,上面有一个工具栏,右键点击添加button或largeButton(随便加几个),actionList组件中默认的设置了几个动作,您可以自己写几行代码。
5.运行程序,正常后,新建一个包把您新建的这个窗体加进去,在Requires上右键=>Add Reference,在Packs目录下找到pack_Global.dcp,加进去。
6.设置编译的output directory,您也可以不设,回头儿把生成的BPL放到BIN目录下即可。
7.再找到您刚才建立的vcl application,双击barmanager组件(名称应该叫barMgrChild),把Command中的“生成配置文件”按钮拖到ToolBar上,运行程序,填写必要的项,生成XML文件。XML文件的选项中,分组是放到快速导航栏里的那个板里的。包一项必须得填您刚才生成的包文件,需要全称(带.bpl),其余就没所谓了。
注意:生成的XML文件必须和BPL文件在一个目录下!!!
8.运行主程序,最上最左一个小小按钮,Hint是导入插件,选刚刚生成的XML文件,提示后,您新建的插件就出现在导航栏里了,点击一下,看看会是什么效果?
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
通用Ribbon风格插件框架.rar (90个子文件)
说明.txt 4KB
Bin
layoutRep_CheLiangClientMain 81B
pack_Test.bpl.xml 716B
pack_Test.~bpl 12KB
pack_Test.bpl 60KB
__history
Modules.xml.~1~ 962B
pack_Global.bpl 2.24MB
Modules.xml 707B
pack_Global.~bpl 2.28MB
prjMain.exe 90KB
Global
uCreateXML.dfm 3KB
uCreateXML.pas 2KB
uDM.dfm 1.24MB
uDM.pas 681B
uOriginal.dfm 3KB
uOriginal.pas 3KB
__history
uDM.dfm.~5~ 1.24MB
uCreateXML.pas.~1~ 2KB
uOriginal.pas.~1~ 3KB
uDM.dfm.~2~ 1.24MB
uDM.dfm.~4~ 1.24MB
uDM.pas.~2~ 3KB
uOriginal.pas.~4~ 3KB
uDM.pas.~7~ 699B
uOriginal.dfm.~1~ 4KB
uDM.pas.~1~ 3KB
uDM.pas.~5~ 715B
uDM.pas.~3~ 3KB
uOriginal.pas.~3~ 3KB
uOriginal.pas.~2~ 3KB
uSysClass.pas.~3~ 6KB
uCreateXML.dfm.~2~ 3KB
uSysClass.pas.~5~ 6KB
uSysClass.pas.~6~ 6KB
uDM.dfm.~1~ 121B
uSysClass.pas.~1~ 7KB
uCreateXML.dfm.~1~ 3KB
uSysClass.pas.~4~ 7KB
uOriginal.dfm.~2~ 3KB
uDM.pas.~4~ 1018B
uCreateXML.pas.~2~ 2KB
uSysClass.pas.~2~ 6KB
uDM.pas.~6~ 746B
uDM.dfm.~3~ 1.24MB
uSysClass.pas 7KB
uXML_System.pas 13KB
Packs
pack_Global.identcache 401B
pack_Global.dproj 9KB
pack_Test.dproj.local 298B
pack_Global.dcp 4.21MB
pack_Test.dproj 7KB
pack_Test.dcp 16KB
pack_Global.res 6KB
pack_Test.dpk 568B
pack_Test.skincfg 620B
__history
pack_Global.dpk.~2~ 740B
pack_Test.dpk.~1~ 493B
pack_Global.dpk.~1~ 495B
pack_Global.dpk.~3~ 740B
pack_Global.dpk.~6~ 1KB
pack_Test.dpk.~2~ 509B
pack_Global.dpk.~4~ 1KB
pack_Global.dpk.~5~ 1KB
pack_Test.res 6KB
pack_Global.skincfg 620B
pack_Global.dpk 1KB
pack_Global.dproj.local 300B
测试插件
prjTest.identcache 567B
prjTest.dproj.local 703B
prjTest.skincfg 620B
uTest.dfm 2KB
prjTest.dproj 7KB
__history
uTest.pas.~5~ 1KB
uTest.pas.~4~ 1KB
uTest.dfm.~2~ 953B
prjTest.dpr.~1~ 154B
uTest.dfm.~5~ 1KB
uTest.dfm.~7~ 2KB
uTest.dfm.~4~ 953B
uTest.dfm.~3~ 980B
uTest.pas.~2~ 913B
uTest.pas.~1~ 825B
uTest.pas.~3~ 1KB
prjTest.dpr.~2~ 652B
uTest.dfm.~1~ 312B
uTest.pas.~6~ 1KB
uTest.dfm.~6~ 1KB
uTest.pas 1KB
prjTest.res 6KB
prjTest.dpr 527B
共 90 条
- 1
last_wolf1860
- 粉丝: 9
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JavaScript函数
- java-leetcode题解之Range Sum Query 2D - Mutable.java
- java-leetcode题解之Random Pick Index.java
- java-leetcode题解之Race Car.java
- java-leetcode题解之Profitable Schemes.java
- java-leetcode题解之Product of Array Exclude Itself.java
- java-leetcode题解之Prime Arrangements.java
- MCU51-51单片机
- java-leetcode题解之Power of Two.java
- java-leetcode题解之Power of Three.java
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页