[QSecurity]QSecurity 使用入门指南

QSecurity 是 QPlugins 的安全相关插件接口及其实现, qplugins_security.pas 定义了安全相关的接口,我们在插件中使用时,只需要引用这个接口文件就可以了。而服务的实现单元并不包含在免费开源的范围内,如果您不想自己实现,或者想参考实现,需要付费购买,价格为人民币 99.00 元。 无论

[QPlugins] QSecurity 插件使用指南

QSecurity 是 QPlugins 的付费插件,用于提供用户权限管理和控制。该插件实现的主要功能包括: 1、用户管理功能 角色管理 角色管理 添加子角色 删除子角色 添加引用(这里的引用是指将同一个角色或用户账号创建一个引用到其它角色下的工作方式,也就是说一个用户或角色同时隶属多个父角色,这样用户可以从多个父角色

[QPlugins] 多文档界面插件支持示例已经提供

示例代码已经放到 Demos\Delphi\MDI 目录下,实际运行效果: 注意,使用 MDIChild 类型的窗体做为服务,宿主和插件都必需同时包括 rtl 和 vcl 两个运行时包,否则无法检测到 MDI 主窗体。另外,要求插件和宿主程序必需使用同一编译器版本编译。

[QPlugins] DLL 中插件提供窗口服务指南

QPlugins 为了简化大家开发带有窗体的插件,提供了 IQFormService 接口的封装实现。要使用该接口,需要按以下步骤执行: 【宿主程序】 1、如果宿主程序是 VCL 程序,在某个模块的 uses 小节,加入 qplugins.vcl.messages 单元,以便引入对 Windows 消息的扩展支持服务;

[QPlugins] 第一个 FMX 插件工作了~~~

QPlugins 对 FMX 的支持目前有一个好消息报告给大家,那就是 FMX 的插件工作了。目前仅限于 Windows 平台,测试的宿主程序是用 VCL 编写的,而插件是用 FMX 编写的一个窗口。当然现在第一版 Bug 多多,退出时还有异常,不过这是一个良好的开始。下面是测试程序的动态截图: 未来是光明的,前途是坎

[教程] QPlugins 插件引擎教程 – 让 QPlugins 协助你解耦程序

程序就是一堆面条,理顺了,好用又好看,如果缠在一起,那就会煮成一坨面疙瘩了。QPlugins 虽然是一个插件引擎,但是记住我们的理念,插件即服务,服务也就是插件一种插接方式。 首先,我们了解的第一个基于 QPlugins 的 Demo 位于 DockForms 里的 InProcess 目录下。它的目标是将不同单元的窗

[QPlugins] BPL 还是 DLL 插件,我该如何选择?

我们用 Delphi 或 C++ Builder 编写插件时,许多人会在 DLL 和 BPL 插件之间纠结,那么我们应该如何看待此问题呢? 首先我们来看它们的优势: BPL 插件 Delphi / C++ Builder 原生支持,通过在主程序和插件中引用同样的包,可以达到可以传递相同对象的目的,而且动态转换类型时,不

[QPlugins] 教程-了解 QPlugins 的整体架构

QPlugins 是 QDAC 开发组奉献给大家一套开源的跨语言插件框架,我希望能它能得到大家的喜欢,并逐渐应用到自己的开发中,用于简化并加快项目的开发进度。 QPlugins 插件框架提供的理念是“插件即服务”,通过各种各样的服务,让程序得以松散耦合和易于扩展。目前核心可以运行在 Win32/Win64/Androi

[QPlugins] 使用 QPlugins 的通知机制

首先,我们要知道 QPlugins 的通知机制使用了订阅发布模式。一个通知或叫主题有两个重要的属性: 名称(Name) 名称是通知类型的名字,必需在整个插件系统中保证唯一,同名的被认为是一个类型的通知。当跨进程通信时,是靠名称而不是 ID 来唯一区分通知。 编号(ID) 一个进程唯一的编号(为什么是进程唯一,这个问题好

[QPlugins] 常见问题答问

1、QPlugins 是什么? QPlugins 是一个插件管理引擎,它基于 Delphi 编写,支持各种语言做为宿主和插件。虽然是一个插件引擎,但 QPlugins 更想强调的是服务的概念,而不是插件。插件在 QPlugins 里只是各种服务的容器,各种服务才是 QPlugins 想要整合的主体。QPlugins 的

[QPlugins] 如何编写基于 QPlugins 的插件程序

QPlugins 插件引擎目前正在开发过程中,目前已经可以编写基于 QPlugins 的插件了。QPlugins 中每个插件提供一到多种服务,这些服务被注册到全局的 PluginsManager 实例中,这个实例在所有的插件中都是可以直接访问的。 PluginsManager 将服务划分为三类: 1、加载器(Loade

QDB、QString、QValue、QPlugins 更新说明

【更新内容】 * 修正了QDB、QPlugins 在 2007 无法编译的问题 + QString 增加 StrCmpW 函数(原有增加新参数并移入 interface 部分) + QValue 修正了Bcd 类型操作符在早期版本未重载而引起的编译问题 * 其它细节修改 【更新级别】 推荐 【特别感谢】 麦子仲肥、勇哥

[QPlugins] 插件引擎的微内核都有什么?

QPlugins 会实现一个微内核,但微内核并不意味着功能的削弱,反而因为微内核,从而使整个插件引擎更具有灵活性和可塑性。 微内核负责什么? 目录 这个目录是插件提供的服务的目录,它是面向服务的优化的。为啥不是面向插件优化,这是因为我们在程序设计时,更关心的是能不能提供某项服务,而不是要关心那个插件提供了这项服务,因此

QPlugins – 基本的原型演示程序已经出来了,欢迎大家测试并提供建议

昨天到今天,我根据自己的想法,将 QPlugins 插件引擎的框架给搭了下。欢迎有兴趣的朋友加入讨论和参考。 首先,QPlugins 插件框架是一个可替换的框架,所有的一切都可以被替换(All can replace),包括插件管理器自身。当然了,替换插件管理器这个有几个方法,直接实现一个新的 IQPluginsMan

QPlugins的一些设计构想讨论

讨论时间:2014-12-29 讨论范围:QDAC官方QQ群 讨论内容: (1)、QPlugins 大概的实现时间约在2015年春末夏初。 (2)、QPlugins 将是一种微内核的插件框架,内核只管理以下事情: 插件的注册/反注册 插件实例的集中调度(查询、创建、释放) 扫描并加载各种加载器(Loader) (3)、

QPlugin框架内核设计调整计划

参考强大的群主对插件的10条建议后,,拟对QPlugin的内核实现进行一些调整,以释放出内核各组件更大的定制和重用自由度。 先罗列一下群主的10条大补丸,然后逐一说下想法,大家看了请有想法的也提些建议,在动手前越清晰越好哈。 1、我这里将提供插件管理的核心称之为宿主,它应该是一种及其精简的微内核,唯一的作用就是注册和查

QPlugins专题-跨语言、跨平台的微轻量级插件框架

QPlugins 插件框架是由 QDAC 项目组设计的轻量级插件框架,它试图提供一套基于接口的跨语言(初始版本支持 Delphi、C++)、跨平台(初始版本支持Windows,计划支持 Android/Linux/OSX/iOS 等平台)的一个插件框架。目前正在开发中,欢迎大家加入讨论。 本插件框架的设计理念参考了冰晰