在FMX中实现PostMessage的方法

首先,做为一个从Windows下转过来的开发人员,许多时候,我们喜欢用PostMessage来触发一些异步执行的代码,但遗憾的是,FMX做为EMB的跨平台库的基础,只提供了SendMessage方法,却没有提供PostMessage方法。 那我们确实需要PostMessage怎么办?我因为用到了,所以研究了下,编写了一

在Andriod程序中获取外置SD卡根目录

我们知道,Andriod是基于Linux的,所以正常的存贮设备都被挂载到/mnt目录下,我们查找SD卡根目录就是要在下面找到那个卡是外置的SD卡,但遗憾的是,目前没有一种标准的方法来做到这一点(包括Andriod本身)。下面我为大家提供了一个函数来完成这一功能: [crayon-5a0f5199f37661075274

XE7编译Android程序时CreateAndriodMainfestFile失败的解决办法

如果你在编译Android时出现下面的错误提示,那么恭喜你,遇到了Delphi/C++ Builder编译器的一个弱智的Bug:

问题发生的原因是你程序的输出目录没有在当前目录的两级子目录下,正常是Android\Debug或Android\Releas

QXML更新-修正了MoveTo移动到一个没有子结点的结点时出错的问题

【问题描述】 由于TQXMLNode的FItems成员是按需创建的,而在MoveTo函数实现时未检查目标父结点的FItems成员是否已创建,直接添加造成AccessVolation错误。 修改代码加入对FItems是否已经分配的检查,以解决此问题。 【严重程度】 高 【更新级别】 建议 【特别感谢】 新心晨曦

QJson与RapidJson性能的简单对比测试

盒子上一位朋友想知道QJson和C++编写的RapidJson之间的性能对比情况,限于精力,我只是简单的测试了下加载一个大的Json文件来对比解析性能(Demos\Delphi\VCL\QJson\Preferences.txt,文件大小:9.81MB),但做测试大家都知道与测试样本的关系很大,这里只对这一个测试用例负

QMsgPack更新-修正了移动节点时未检查自己是否是目标的父结点问题

【问题描述】 新增加的函数MoveTo在移动结点时,如果错误的将目标结点设置为自己的子结点,程序未报错但执行结果是错的。本更新解决这一问题,并会在发生这一情况时抛出异常,提示用户不能将自己移动到自己的子结点下。 【严重程度】 中等 【更新级别】 推荐

QJSON更新-修正了移动节点时未检查自己是否是目标的父结点问题

【问题描述】 新增加的函数MoveTo在移动结点时,如果错误的将目标结点设置为自己的子结点,程序未报错但执行结果是错的。本更新解决这一问题,并会在发生这一情况时抛出异常,提示用户不能将自己移动到自己的子结点下。 【严重程序】 中等 【更新级别】 推荐

QXML 更新 – 修正了移动节点时未检查自己是否是目标的父结点问题

【问题描述】 新增加的函数MoveTo在移动结点时,如果错误的将目标结点设置为自己的子结点,程序未报错但执行结果是错的。本更新解决这一问题,并会在发生这一情况时抛出异常,提示用户不能将自己移动到自己的子结点下。 【严重程序】 中等 【更新级别】 推荐

QMsgPack更新-增加Remove、Detach、AttachTo、MoveTo函数及允许重命名

【更新内容】 1、新增Remove函数移除指定的子结点,与Delete的区别在于Remove并不会释放子结点,而只是将其从父结点中移除而已。

2、新增Detach函数将自己从父结点中移除自身,相当于调用Parent.Remove(Self) [crayo

QJson更新-增加Remove、Detach、AttachTo、MoveTo函数及允许重命名

【更新内容】 1、新增Remove函数移除指定的子结点,与Delete的区别在于Remove并不会释放子结点,而只是将其从父结点中移除而已。

2、新增Detach函数将自己从父结点中移除自身,相当于调用Parent.Remove(Self) [crayo

QXML更新-新增Remove/Detach/AttachTo/MoveTo函数

【更新内容】 1、新增Remove函数移除指定的子结点,与Delete的区别在于Remove并不会释放子结点,而只是将其从父结点中移除而已。

2、新增Detach函数将自己从父结点中移除自身,相当于调用Parent.Remove(Self) [crayo

QWorker更新-正式加入TQJobExtData扩展方式,已兼容移动平台

【问题描述】 上次更新增加的TQJobExtData扩展数据方式,未进行移动平台相关条件编译选项的设置,造成移动平台无法编译。修改加入相关条件编译选项,目前已兼容移动平台。 【严重级别】 中 【更新级别】 可选 【特别感谢】 恢弘

QWorker更新-修改了作业返回值为一个具体作业句柄

【更新内容】 修改Post、Delay、Wait、At、LongtimeJob的返回值类型,由原来的布尔值(Boolean)改为64位整数。返回的64位整数是对应于具体作业的句柄,在需要清理该作业时,可以直接当作参数传递给Workers.Clear函数,以更高效的清除单独作业。在投寄失败时,返回值为0. 由于此项变更,

QWorker更新-新增基于作业过程的初始化和释放方法

【更新内容】 新增了一个TQJobExtData对象类型以辅助用户来创建一个自动释放的对象实例,它有匿名版本,在支持匿名函数的Delphi 2009以上程序中,可以更方便直观的编写初始化和释放过程。 一、构造函数的声明

1、非匿名函数版本 第一种形式的声

QDAC新增QCNDate单元,处理阴阳历之间的换算

该单元可以将1901-2050年间的农历日期与阳历日期之间做任意转换并提供了很多辅助函数,以帮助大家在做日程类应用时,进行相关处理。在Demos\Delphi\VCL下提供了一个Demo来演示这个用法,截图如下: 函数列表如下:

 

在Andriod程序中输出日志到Windows的QLogServer查看

大家知道日志是我们调试程序的一种重要方式,QDAC的QLog提供了一种异步的日志记录方式,以尽量减少到系统系统性能的影响。而且QLog支持Syslog协议输出,可以将日志输出给其它的syslogd兼容的日志查看器。当然为了方便大家,QDAC实现了一个自己的QLogServer,使用标准的UDP协议514端口来记录日志。