……省略废话若干…… Delphi的泛型在C++中被暴露为模板。然而很重要的一点是它的真正实例化于 Delphi 那边,而不是C++。所以,你只能使用那些 Delphi 代码中已经显式实例化的模板类型。例如,我们声明一个 Delphi 中的简单泛型 TList<T>: unit DelphiUnit; in
月度归档: 2015 年 4 月
[译] 如何在 C++ Builder 中使用 Delphi 的匿名方法
回到 在 C++ Builder 中使用 Delphi 特性 本主题描述了一些你可能在面对匿名函数时遇到的编程问题-一个 Delphi 的新特性。 说起来,Delphi 是通过接口的一个 Invoke(…) 函数来实现匿名函数的(也被称为函数引用)。 所以一个 Delphi 中的函数引用参数导出到 C++
TQPagedList – TList 的高性能替代品
QDAC 项目组很高兴为你发布一个全新的类:TQPagedList,它可以用来做为系统中 TList 类型的很好的替代品,接口保持和 TList 99.9 兼容,绝大部分应用只需要替换类名就可以带来很好的性能提升。 关于 TQPagedList 和 TList 的性能差异,可以参考:均衡型选手 – TQPagedLis
重要更新 – QString 中 ParseNumeric 的一个低级错误影响QJson/QXML/QMsgPack
【问题描述】 该问题是由于解析浮点数字时,直接使用 ParseInt 解析浮点数的整数部分,因此在解析 -0.xxx 这种浮点数据时,会出现错误的解析结果。 【更新级别】 立即 【严重程度】 高 【特别感谢】 YZ
均衡型选手 – TQPagedList 与 TList 和 RBTree 的性能PK
QDAC 新实现了一个 TQPagedList 来代替 TList 来处理需要较大量的数据增删的情况。通过内存数据分页的方式,降低数据移动的数量,从而达到优化速度的目的。 下面是一些性能的实测结果(Release模式): 插入测试 将10万条数据插入位置0(最糟情况) TList: 2736.3 ms TQPagedL
QWorker 更新 – 简化多个参数传递时的处理
【更新内容】 TQJobExtData 扩展了一个新的构造函数,接受一个array of const 数组来传递多个参数。首先是构造函数: constructor Create(const AParams: array of const); overload; 然后通过两个属性来访问其传入的参数: ParamCount
换肤123 – 只想为你长得更美丽~~
应用程序要想长得好看,除了布局合理,还需要好的皮肤。就象一个美女,如果空有一副好身材,但是皮肤不好,全是麻点大包,观感也不会好到那里去。 早期的应用程序的换肤大法,主要由第三方控件来解决,出名的有 VCLSkin、AlphaControls 等等。但新版的 Delphi 直接内置了美容换肤大法,VCL 应用程序是 VC
QWorker 更新 – TQJob 增加 Handle 属性
【更新说明】 根据 恢宏和音儿小白的建议,为 TQJob 加入了一个 Handle 属性,它对应的是你提交作业时返回的句柄的值。如果是一个空的未提供作业或者简单作业,返回的是实例本身的地址。 这个句柄可以用在 ClearSingleJob 等需要取消作业的场合,为了避免在作业中取消句柄对应的作业时,由于需要等待自身退出
QWorker 更新 – 修正了新版本在特定环境下退出会死掉的问题
【问题描述】 该问题是由于在退出时,检查后台统计线程是否完全退出时循环等待造成的。已知在Windows 7 操作系统中会存在该问题。 【严重程度】 中 【更新级别】 推荐 【特别感谢】 blessed
【Delphi】AXMLPrinter (Android XML)
找这个的人肯定知道这是干什么的。没错,我花了半天时间将Java代码改写成了Delphi,在D2007下调试通过。 用法很简单,将APK文件改名成.zip,就可以解压缩了。解压以后可以看到很多文件,其中有很多是.xml后缀的。打开发现全是乱码。是的,你现在需要AXMLPrinter了。 比如我们知道,其中的Android
[教程]基于 QWorker 的多线程编程 – 计划任务
如果前面的各种设置无法满足你的要求,你可能需要的是计划任务。QWorker 支持 Linux 的 Cron 计划任务配置文件格式,可以直接调用 Plan 函数来传递格式字符串到程序中进行任务调度。 与普通的作业不同,计划的作业任务分辨率比较粗,与 Linux Cron 配置文件格式一样精确到分钟。 QWorker 支持
QWorker 更新 – 新增 Plan 函数添加个一个 Linux 样式的计划任务作业
【更新说明】 QWorker 新增了一个 Plan 函数来做计划任务作业的处理,与 At 和 Post 函数不同,Plan的计划任务掩码精度是精确到秒,而本次任务与下次任务之间的时间间隔并不是固定的,如每月1号执行的任务,牵涉到大小月间隔就不一样了。所以 QWorker 内部维护了一个独立的队列来处理此问题。 QWor
QWorker 更新 – 修正了 GetTimeStamp 函数长时间运行溢出造成定时任务调度失败的问题
【问题描述】 该问题是由于 GetTimeStamp 在实现时用高性能计数器取得的结果 ×10000 后再除以频率造成的,将实际的高精度计数器值乘10000后,约4天多一点的时间,就会造成溢出为负数。修改算法改为计数器从应用启动时开始计算并且先除以频率后再乘以10000,从而避免该问题。 【严重程度】 高 【更新级别】
重要更新 – 请 QXML、QJson、QMsgPack、QLog、QWorker 用户更新
【问题描述】 该问题是由于 TQStringCatHelperW.Cat 函数在连接字符串时,计算需要的内存缓冲区大小不正确,可能造成构造较长的结果字符串时结果不正确,甚至可能出现 Access Volition 错误。问题发生在下面两个函数: function TQStringCatHelperW.Cat(p: PQ