【说明】 单件模式是一种用于确保整个应用程序中只有一个类实例。 想想我们的系统中有哪些方面可以应用到单件模式,比如大家常说的连接(ADOConnection)共享,其实就是指的单件模式。 【MyBean中的单件模式】 MyBean中插件一旦成为单件模式,框架就会帮你接管对象的生
月度归档: 2014 年 8 月
QWorker更新-修正了工作者没有及时回退的保留数量的问题
【问题描述】 如果作业中有定时作业,会引起作业等待超时时间不断被重置,由此造成工作者不会被及时解雇。未修正的版本,如果运行测试程序,同时开启了定时作业,则会出现此问题。不修改只会造成工作者数量保持在历史上限,不会造成其它负面影响。 【严重程序】 一般 【更新级别】 可选
[MyBean说明书]-如果进行最简单的DEMO
MyBean是轻量级的、绿色的框架,不需要安装任何的组件和携带任何的其他文件,前 期步骤已经相当精简了,仔细阅读完下面简单的五个步骤,就可以编写基于MyBean的插件: 1.加入Delphi的搜索路径 source\frame-common,source\frame-core 2.主控台<EXE>进行初始化
关于插件的一些观点
插件,首先是一种机制,让你的程序易于扩展。但我们思考插件时,思维往往容易固化,从而限制了自己的思维。 我试图写点东西,打破这种固化的思维。 1、我这里将提供插件管理的核心称之为宿主,它应该是一种及其精简的微内核,唯一的作用就是注册和查询中心,内部维护每个插件的来源和所提供的服务就行。 2、宿主不需要知道如何去加载每个插
QWorker的下一步计划
QWorker目前已经实现要求的功能,那么,它的未来之路指向何方?我试图整理思路,下面只是头脑发热的内容,可能根本没精力去实现,也不会有人投资到这方面,让我有足够的资源去实现。 1、QFlow 这个是对QWorker的简单继承与发展,目标很明显,是基于作业调度的工作流控制。作业的调度本身,QWorker已经完成,QFl
QWorker更新-修正在特定情况下定时作业会停止执行的问题
【问题描述】 TQWorker.WaitSignal函数的参数类型应为Integer,但实际上为Cardinal,由此造成如果传入的等待超时小于0时,变成了一个很大的无符号整数,从而造成始终不会超时,由此引起重复定时作业停止执行。 【严重级别】 严重 【更新级别】 强烈建议
如何编译Delphi组件让其在C++ Builder中可用?
Delphi下有许多很好的VCL组件,但作者却没有提供C++ Builder的版本,这许多时候是因为作者就是纯Delphier,不了解C++,另外还有可能是因为作者本身就很懒,根本就没有考虑到C++ Builder的广大人民群众。那么,做为苦难深众的C++ Builder用户难道就此放弃吗?绝不!(此处应该有掌声) 实
QXML更新-修正了五月光报告的一个参数未生效的问题
【问题描述】 QXML的LoadFromFile函数的AEncoding参数没有生效,造成从文件加载中,无法强制使用某一编码。虽然一般情况下智能判断拥有良好的表现,但在特殊情况下,通过指定编码在处理特殊情况时还是有用的。 【更新级别】 可选
QSocket构想-QSocket的层次模型
QSocket是QDB完成后的下一个大坑,底层会基于IOCP(Windows系)、EPoll(Linux系)和KQueue(OSX,FreeBSD系),以Delphi实现的跨平台的网络业务支持平台。 设想中的QSocket分为几个层次: 1、传输层 传输层负责数据准确送达,在传输层产生连接的概念,会为每个连接生成一个唯
【公告】网站的邮件发送服务由SendMail更新为Postfix
昨天(2014-8-27)群友在网站注册时,发现许多群友收不到注册邮件,百度后有各种解决办法,但最后选择了替换SendMail为Postfix,据说Postfix发送邮件的速度是Sendmail的3-4倍,先不管真假,至少我在完成后,试着注册时,确实很快收到邮件了。不过就是更换的过程有点坎坷,网站提示无法连接数据库,好
QJson更新-修复了阿木报告的一个Bug
问题是由于解析带有注释时JSON数据时,如果后面跟着数组或对象结束符,解析会失败。例如下面的JSON代码会解析失败: { “Name”:”MyName” //这是引起问题的注释 } 感谢阿木的报告,问题已经得到修正,没有包含注释的JSON不会受此问题影响。
【重要公告】QDAC官网启用新域名qdac.cc
首先感谢音儿小白和建业兄弟提供的域名赞助。 新域名在2014年8月27日晚正式启用,旧的域名blog.qdac.cc在相当一段时间内仍会重定向到blog.qdac.cc,建议大家收藏blog.qdac.cc域名。 有了大家的帮助,QDAC项目将来一定会发展的更好。
QPlugins专题-跨语言、跨平台的微轻量级插件框架
QPlugins 插件框架是由 QDAC 项目组设计的轻量级插件框架,它试图提供一套基于接口的跨语言(初始版本支持 Delphi、C++)、跨平台(初始版本支持Windows,计划支持 Android/Linux/OSX/iOS 等平台)的一个插件框架。目前正在开发中,欢迎大家加入讨论。 本插件框架的设计理念参考了冰晰
绿色版PG安装的批处理
1、不注册成服务,用的时候直接打开(命令行窗口不能关闭) @ECHO OFF IF NOT EXIST %cd%\bin GOTO Error IF NOT EXIST %cd%\lib GOTO Error IF NOT EXIST %cd%\share GOTO Error IF NOT EXIST %cd%\St
Oracle和PostgreSQL中时间间隔类型(Interval)表达式
Oracle和PostgreSQL都支持一种叫作Interval的时间间隔类型,据有关资料显示,它是SQL-92标准的一种规范类型,但实际支持的数据库并不算多。 Oracle中关于Interval类型的说明: http://docs.oracle.com/cd/B19306_01/server.102/b14200/s
多线程排序的一点思考
多线程排序内部使用快速排序算法,但因为排序时,要对数据进行分区,以便避免由于使用锁而降低排序效率。而数据分区时,我们该如何分,什么时间分是一个需要测试和权衡的问题。 QDAC的QDB的数据排序将使用多线程排序,算法不外乎两种: 1、简单分区再排序 在排序前,先将数据进行分块,保证前一块的的所有值都小于后一块,这样子再次
多线程程序的填坑笔记和多线程编程应该遵循的规则
这几天晚上群里一朋友有偿叫我把他的程序弄稳定,因为是现场管理项目,需要做到无人职守,所以即使是客户端,也不能经常down机,因为之前对他的程序有过一个晚上的实地查看,基本流程已经有个大概的了解,我就接下来了。 刚开始的时候, 程序运行不到一个上午,内存暴涨,有时几个小时就挂了,这个那天晚上发现了,找了半天发现一处加载图
杂谈-Windows8装完后机器进不去BIOS咋回事?
这个事情怎么说呢,一句话:进入Windows8然后选择重新启动,然后进BIOS的热键就好使了,否则,Windows 8关机时,微软和BIOS联合作弊(是支持Windows8快速启动的BIOS),根本就不让你按热键,你按了也没反应,结果就是咋整也进不去。我能说坑爹吗?
QMsgPack-TClientDataSet内容直接保存到MessagePack数据流
QMsgPack支持AsVariant方法,而TClientDataSet提供了一个Data属性的Variant类型变量直接传递数据集内容,由此,我们可以方便的建立两者之间的关系。 【提示】 在Delphi的早期版本中,Data这个Variant类型的值内部使用的是AnsiString来存贮的字节流,但我并不确定Del