[FMX] QDAC 新增 FMX VirtualTreeView 实现

好吧,我本来不想在 QDAC 里添加 UI 相关的东西,不过 FMX 的树实在让人不爽,等 VirtualTreeView 的 FMX 版也等不到,FMX 的闭源实现到是有一些,但根据群友的反馈,也就那样吧。所以狠狠心,咬咬牙,花了近一周的时间,自己写了一个,命名为 TQVirtualTreeView,自己测试的结果,

[FMX]在 QPlugins 中 VCL 宿主使用 FMX DLL 需要手动处理的问题说明

由于众所周知的原因,FMX 的 DLL 在 FreeLibrary 时,会出现 AV 异常,这实际上包含了两方面的原因:  FreeLibrary 时,未正确清理内部的计时器,造成 FreeLibrary 后,内部的计时器到指定的时间点后仍然运行,结果就出现了 AV 错误。  GDI+ 初始化和清理只能在宿主程序中执行

[QSecurity]QSecurity 使用入门指南

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

【教程】在你的程序中使用自定义字体

【Android】 方法一:参考 [译]在 Andriod/IOS 程序中使用自己的字体 自己修改系统源码,缺点是每升级一个版本需要修改一次; 方法二:使用 QDAC 为此新增 qdac_fmx_fontex_android ,不过区分免费版和赞助版(赞助版为qdac_appfonts,同时支持所有平台),但使用步骤一

[QMacros] 使用迭代器来重复内容

QMacros 2017年9月18日提交的版本支持了迭代器,以重复替换某一部分内容。 迭代器的声明:

好吧,这是一个接口,这就意味着,我们绑定某个宏到这个迭代器之前,需要先实现一个迭代器。我们可以继承自 TQMacroIterator 实现一个自带的迭代

[QLang]Android 发布 QLang 语言文件

作者承诺的 QLang  FMX 版本一步步向我们走来,截止本文发布时,QLang 已经做到 : Windows 平台完整(VCL 和 FMX 框架同时支持,32位 / 64位均可) QLang 已经在 Android 下成功的编译运行,下面是两张效果图 好了,那么接下来的事情,本教程教大家怎么来将语言文件打包到你的

[QSocket]单连接多请求和多连接合并处理协议及实现思路

一般的网络业务处理都是请求+应答式的,当然有时候可以不需要应答(我们可以称之为通知)。但是,请求发送过去后,这个连接在服务器端处理完成返回数据之前,是处于空置状态的,而且也不利于充分利用服务器的处理性能,所以在 QSocket 我将为大家提供一个单连接多请求处理协议(暂定名)实现,它的目的是将请求和返回的结果顺序异步化

[QSocket]QSocket 总体设计框架说明

QSocket 是 QDAC 开源组件的一个重要的组成部分,终于要开始开工了,为了方便大家了解 QSocket,对 QSocket 的总体设计的一些想法,我在这里给大家简要的描述一下。 首先,QSocket 同 QDAC 的其它组成部分一样,是跨平台的,这意味着你可以在不同的操作系统中,体验 QSocket 为你带来的

泛型数组清空数据

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知 我是怀疑泛型数组 setlength后会不会清零,弄了个小demo,不知道为什么我会有这个想法,难道是我看数据结构入魔了,记得记录指针需要另类释放问题。 记不清了 脑袋完蛋了 上demo ,事实证明setlengt

Qxml如何添加cdata

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。 我们再使用的时候,往往需要包含这些特殊字符,要求保持这些特殊字符不变。 这个时候就需要用<![CDATA[   我是保持不影响XML解析的特殊字符”<>’等     ]]

QXML转义问题

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。  

 

Qjson中把json字符串,当做子节点的方法

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。

 

qjson中把记录或类型或泛型数组转换为json字符串

我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。

 

[QWorker] 更新:修正了信号作业清理的一处问题,并更改了信号容器

【问题描述】 1、信号作业清理原来使用的哈希表忘记考虑哈希桶位置重复,造成未正确清理掉。 2、信号作业的容器由哈希表改为普通的数组,以提升效率(此业务场景更适合用普通的数组)。 【严重程度】 高 【更新级别】 推荐 【特别感谢】 MLSkin

[QWorker] 更新:增加信号的顺序触发并修正 Delay 函数存在的问题

【更新说明】 1、QWorker 的信号作业原来是触发时立即就会调度后台线程执行,这样存在的问题就是后触发的信号可能被先执行。而有些场景下,我们需要它们按照触发的顺序执行,所以 QWorker 对信号的触发这块做了一些额外的处理: 增加了一个 SignalQueue 属性,来管理信号触发队列,队列的默认大小为 4096

[QLog] 更新:新增 CalcPerf 函数来统计一个函数的执行时长

【更新说明】 1、新增的 CalcPerf 函数可以用来统计一个函数的执行时间,只需要在函数的开始位置调用它就可以了。您需要为它指定一个字符串标签(Tag),以便在日志中区分不同的函数调用。示例代码如下:

实际输出日志内容如下: [16:30:46.68

[QString] 新增 UrlMerge 函数说明

QString 新增了一个 UrlMerge 函数用来替代Delphi自身 System.Net.UrlClient 单元提供的 TURI.PathRelativeToAbs 函数。为啥要替换它?理由只有一个:它的解析支持有点小问题,所以自己重写一个。 URL 相对路径转换为绝对路径有几种情况: 相对路径实际上是一个带

【付费教程】Delphi 下基于 QWorker 的多线程编程之三:实战

【价格】 以人民币计价: 个人用户:50元 企业用户:300元   【视频长度】 ≥ 51 分钟 【视频语言】 中文,普通话 【视频编码】 格式:H.264 MP4 分辨率:1364×768 【教程源码】 包含示例工程源码 【上架时间】 预计 2016 年 5 月 6 日 【付款方式】 申请加入 QDAC 视