[杂谈]Delphi/C++ Builder Berlin Update 2 更新内容说明

官方更新说明 简单说下,此次更新需要卸载重装。 支持 Windows 10 应用商店发布(APPX); 新的 VCL 日历控件 VCL 窗体设计器常见动作快速编辑支持; 新的 Windows 10 样式; C++ 编译器额外的标志位; iOS 10 和 macOS Sierra 的进一步支持; GetIt 增强; Bu

[FMX] FMX.Graphics.Android 中对 GIF 判断的问题的修正

关于这个 Bug 的详情,大家可以参考:https://quality.embarcadero.com/browse/RSP-12424 Berlin 中的 FMX.Graphics.Android 实现的原始代码如下:

存在的问题: 第一个判定不完善,

[FMX] 为你的移动应用加入在线更新支持

程序永远与 Bug 相伴,即使不是因为 Bug,我们的程序也可能因为增加或调整功能等原因,需要进行升级。那么在移动应用中,实际上还是蛮简单的。 第一关:在服务器端为升级准备必要的文件 版本检查文件:应用需要下载此文件与本地的文件进行比较以确定是否需要更新,为了方便我们可以用 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 相对路径转换为绝对路径有几种情况: 相对路径实际上是一个带

[QWorker] 更新:修正了枚举作业状态的两处问题并修改了 At 函数一个重载的行为

【更新说明】 1、EnumJobStates 返回的运行中作业状态时,IsRunning 标志位设置不正确; 2、PeekJobState 正在运行作业的信息没有正确处理; 3、修改了 At 传递日期时间类型为参数的行为,原来忽略日期时间部分的日期部分,现在改为不忽略日期时间类型中的日期部分; 【严重程度】 中 【推荐

[杂谈]Delphi/C++ Builder 10.1 柏林更新内容简译

原文太长,我就不全文翻译了,以意译为主。 1、安装程序更新 新的安装器让你快速安装基本的功能,然后通过 Feather Installer 来安装额外需要的功能,从而加快安装速度,减少不必要的带宽占用。 2、FireMonkey 更新 Android 6.0 支持 新增 TAddressBook 来访问联系人信息 St

[QMacros] 更新:增加对用户自定义规则的宏名称解析的支持

QMacros 默认是通过宏的开始字符串和结束字符串来区隔宏名称的。但这并不是所有的时候都能满足我们的需要,比如下面的字符串中,我们用 $ 来开始宏名称,遇到非数字时,宏名称就结束: Replace $1.Name to $2.Name 根据前述规则,$1 和 $2 我们人工就可以解析出两个宏 1 和 2,而由于没有宏

[QWorker] Delay 函数新增 ARepeat 参数用来实现重复延迟作业

QWorker 提供了多种重复作业的支持,但是,如果一个作业执行的时间超过了重复间隔,下一次作业不会等待上一次作业结束就会执行,这在某些需求场景下会造成不便。以前我建议大家用人工调用 Delay 的方式来解决这一问题,现在不需要了,QWorker 的 Delay 函数增加了这样一个参数,来简化您的编程: 先看一下函数声

[QMsgPack/QJson] 更新:修正了修改结点名字时,没有重新计算结点名称哈希值的问题

【问题描述】 该问题是由于 DoNodeNameChanged 的重载里,Rehash 子函数在查找结点原来的哈希记录时,使用了错误的哈希表对象引起的。 【严重程度】 高 【影响范围】 使用 TQHashedJson 和 TQHashedMsgPack 的用户 【推荐级别】 歌德 【特别感谢】 QQ

[QString] 新增身份证号、邮箱、手机号验证函数及修改密码强度计算的权重

【更新说明】 本次更新增加了以下函数,参数直接参考注释:

另外,修改了 CheckPassword 函数计算密码强度时,各个部分的权重和强度的计算阀值,以便更适合实际。 【更新级别】 可选  

[QJSON+QMsgPack] 更新:修正了 ItemByPath 对特定数组路径的支持问题

【问题描述】 对于根结点为数组类型的 JSON 或 MessagePack 对象,使用 ItemByPath 访问时,无法得到正确的返回值。以 JSON 为例,下面的 JSON 结构:

如果试图以路径”[0]\[0]\name”来

[QWorker] 更新:修正了 WaitJob 在特定场景下造成作业未及时处理的问题

【问题描述】 该问题是由于 WaitJob 在检查作业是否存在时,先出队了所有的未完成作业,然后在入队时,没有调用LookupIdleWorker 来查找空闲工作者来处理新的任务造成的。 【严重程度】 高 【更新级别】 可选 【特别感谢】 成浩