[开源项目-MyBean轻量级配置框架] 使用MyBean快速搭建分模块的应用程序(主页面的TAB)(DLL-MDI)

[概述]


抱歉由于上次开源比较匆忙,没有来的及做一个DEMO,里面也有些垃圾的文件没有及时清理。DEMO其实昨天晚上已经调通。相关说明文档今天晚上才说明好,欢迎大家继续关注和交流,和大家一起分享我10多年的管理软件框架开发经验,后续会完善更多相应的有用的插件,供大家直接使用。

[DEMO图片预览]


[MDI-DEMO-BIN文件说明]


编译好的文件打包存放于根目录下面,文件名为:MDI-DEMO-BIN.zip,采用XE5编译,使用标准控件,其他版本编译myBeanConsole.exe和plugin-demo-form工程就好,记得这两个工程需要带包,beanMananger.dll可以通用。不需要编译。

myBeanConsole.exe
   --主控台EXE,包含主窗体(带包编译)

myBeanConsole.config.ini
   --配置文件,包含是否使用缓存目录,是否预加载DLL,等配置

demoBeans.plug-ins
   --
bean的配置文件,可以多个,有主配置文件指定目录(可以通配符),参考主配置文件说明

beanManager.dll
   --
框架核心DLL文件,由plug-ins-core\beanMananger提供,标志的Windows DLL文件,不需要带包编译,所有Delphi版本可以使用。

rtl190.bpl
vcl190.bpl
   --XE5 运行包文件(由于使用XE5编译的)

plug-ins\plugin_form_demo.dll
   -- DEMO
DLL(带包编译),注册了aboutForm插件和demoPluginForm插件

[主配置文件说明]

主配置文件文件名: EXE文件名+config.ini,或者app.config.ini

[main]
;加载时插件缓存(放入临时目录)
;true时copy到临时缓存目录进行加载, false插件目录进行加载

;默认为true值
plug-ins-cache=1

;插件临时目录,支持相对路径(EXE目录的相对路径),绝对路径(c:\temp\
;默认为plug-ins-cache

plug-ins-cache-path=temp-files

;加载DLL在启动程序的时候
;默认为true
loadOnStartup=0

;加载bean配置文件目录(相对路径(EXE目录的相对路径),绝对路径(c:\config\*.*)

;没有配置时,直接加载DLL,从DLL中获取PluginID
;<none>时不加载任何DLL插件

beanConfigFiles=*.plug-ins,plug-ins\*.plug-ins,beanConfig\*.plug-ins

;加载文件时记录日志;
;默认为false,
为true时可以从日志文件(log\loadDLL_trace.txt)便于查看到哪个文件加载失败
traceLoadLib=1

[bean配置文件说明]


配置文件可以单个也可以多个,存放路径由主配置文件指定

beanConfigFiles=*.plug-ins,plug-ins\*.plug-ins,beanConfig\*.plug-ins

上面配置指定了根目录的*.plug-ins文件和plug-ins目录下的*.plug-ins文件…

这样便于多人协作编写模块,文件采用JSON格式。

格式与说明

{
   list:
   [

      {

         "id":"frame-core",

        
"pluginID":"frame-core",          
//如果与id一致可以进行忽略(同一个插件可以配置成多种bean)

        
"lib":"plug-ins\\plugin-demo-form.dll",       
//文件名<插件存放的DLL文件>
        
"singleton":true,                     
//是否单件模式(比如远程数据访问插件,可以单件模式)
      }

   ]
}

[plugin-demo-form源码分析]


工程文件(提供了插件的注册,也可以写到窗体文件的initialize部分)

library plugin_form_demo;

uses
SysUtils,
Classes,
uBeanFactory,
ufrmAbout in ‘..\..\Forms\ufrmAbout.pas‘ {frmAbout},
ufrmPluginForm in ‘..\..\Forms\ufrmPluginForm.pas‘ {frmPluginForm},
uBasePluginForm in ‘..\..\Service\uBasePluginForm.pas‘;

{$R *.res}

begin
beanFactory.RegisterBean(‘aboutForm‘, TfrmAbout);
beanFactory.RegisterBean(‘demoPluginForm‘, TfrmPluginForm);
end.

 
ufrmPluginForm.pas,很简单新建一个vclForm,然后把TForm改成了TBasePluginForm(实现了IpluginForm的窗体类)

type
TfrmPluginForm = class(TBasePluginForm)
mmo1: TMemo;
pnlOperator: TPanel;
btnCreateAsModal: TButton;
procedure btnCreateAsModalClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

[MyBean交流]


考虑了下,还是新建个群,方便讨论

群:205486036

源代码地址

https://git.oschina.net/ymofen/delphi-framework-MyBean

[开源项目-MyBean轻量级配置框架]
使用MyBean快速搭建分模块的应用程序(主页面的TAB)(DLL-MDI)

时间: 2024-10-01 17:32:33

[开源项目-MyBean轻量级配置框架] 使用MyBean快速搭建分模块的应用程序(主页面的TAB)(DLL-MDI)的相关文章

[开源项目-MyBean轻量级配置框架] MyBean的特性和MyBean的开始

[概述] 自从mBean框架出生后,受到很多朋友的关注,在公司的外包项目中得到了不错的应用.由于mBean是公司的项目,不便开源,于是这几天利用晚上的时间和周末的时间重写了底层beanMananger.dll所有代码.并加入了很多新的特性.正式进行开源,希望和大家一起完善这个平台. [MyBean畅想] Delphi无疑是Windows程序开发的首选,但是Delphi写法灵活,门派太多,反而不利于推广,和学习.我一直有个想法,做一个开源的平台,我们程序员可以做很多自己的插件基于MyBean这样就

轻量级MVVM框架Vue.js快速上手(MVVM、SEO单页面应用)

轻量级MVVM框架Vue.js快速上手(MVVM.SEO单页面应用.×××服务器端渲染.Nuxt.js) 网盘地址:https://pan.baidu.com/s/1LkhepNpGAtRjrxp_CVJNIg 密码: d483备用地址(腾讯微云):https://share.weiyun.com/5tTLqQk 密码:pxezuj Vue.js是一套构建用户界面的轻量级MVVM框架,与其他重量级框架不同的是, Vue.js 的核心库只关注视图层,并且非常容易学习,很容易与其它前端技术或已有的项

腾讯正式开源高性能超轻量级 PHP 框架 Biny

概况 Biny是一款高性能的超轻量级PHP框架 遵循 MVC 模式,用于快速开发现代 Web 应用程序 Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用 高性能,框架响应时间在1ms以内,单机qps轻松上3000 功能介绍 支持跨库连表,条件复合筛选,查询PK缓存等 同步异步请求分离,类的自动化加载管理 支持Form表单验证,支持事件触发机制 支持浏览器端调试,快速定位程序问题和性能瓶颈 具有sql防注入,html自动防xss等特性 使用文档 框架Wiki地址:

发布一个开源项目,基于thinkphp框架搭建的一个简单框架

采用Thinkphp框架,实现项目基础平台,实现数据库搭建维护,自动实现数据列表.数据管理(新增.修改.删除)等功能.

DIOCP开源项目-利用队列+0MQ+多进程逻辑处理,搭建稳定,高效,分布式的服务端

最近头脑里面一直在想怎么样让能让大家基于DIOCP上写出稳定的服务端程序.很多朋友问我,你DIOCP稳定吗,我可以用他来做三层服务器吗? 当时我是这样回答的,我只能保证DIOCP底层通信的稳定. 说实话,服务端要稳定,并不容易,写过服务端的程序员都清楚.特别是这种可以直接操作指针,自己分配内存和释放内存的语言(想C++, C, Delphi),一不小心就一个坑,一个坑可能就会引发,内存的释放越界,访问非法地址.导致整个进程的直接奔溃. 经过一些研究和咨询,我可以利用多进程来实现通信层和逻辑层的彻

Delphi国内优秀网站及开源项目

Delphi编程技巧大全     http://www.delphitop.com/ Delphi盒子 www.2ccc.com 2Pascal-新时代的Pascal http://www.2pascal.com WeDelphi http://www.WeDelphi.com 新大富翁论坛 http://www.dfwlt.com/forum.php 万一的博客:http://www.cnblogs.com/del/ 原Delphi窖洞洞主博客:http://www.cnblogs.com/x

[DIOCP3/MyBean/QDAC开源项目] DataModule-DB例子基于MyBean的插件实例&lt;三层数据库方案&gt;

[说明] 这个例子答应大家很久了,一直没有时间弄,现在正式结合MyBean插件可以很方便的在客户端共享操作连接,执行数据库的各项工作,屏蔽了底层的通信解码器编码等工作,直接传递Variant,给了开发者足够的领活和自由. [服务端使用技术] diocp3:担当底层的通信任务. qworker/iocpTask:担当业务逻辑的处理工作,diocp3接受数据解码后用qworker/iocpTask将数据包投递出来,这样不用占用通信线程. qmsgpack:负责将传递的将variant数据打包到流,从

Android开源项目总结

Android经典的开源项目其实非常多,把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助 项目篇: 1.Apollo音乐播放器 就一个很好的播放器,但是实现的特别好!!! 地址:https://github.com/Splitter/android_packages_apps_apolloMod 2.Oschina客户端 OSChina网站客户端,wp版,ios版都有开源哦. 地址: https://github.com/oschina/android-app 3.Xa

Android--上百个Android开源项目分享

上百个Android开源项目分享,希望对android开发有帮助. Android PDF 阅读器 http://sourceforge.net/projects/andpdf/files/ 个人记账工具 OnMyMeans http://sourceforge.net/projects/onmymeans/develop Android电池监控 Android Battery Dog http://sourceforge.net/projects/andbatdog/ RSS阅读软件 Andr