【更新说明】 StrBeforeW 用于解析特定字符串前的子串,比如字符串”Tommy and Jommy”,我们要取 ” and” 前的字符串,那么,用StrBeforeW就可以轻松的分割出来。 SplitByStrW 调用 StrBeforeW 将得到的子串加入到一个
分类: QDAC
[QPlugins] C++ Builder 做宿主,Delphi 的 DLL 插件(不带包)测试成功
看一下效果,宿主是用C ++ Builder Seattle 编码,DLL 是用 Delphi Seattle 编译,成功将插件窗口嵌入到了宿主程序中,工作正常。
[QPlugins] DLL 中插件提供窗口服务指南
QPlugins 为了简化大家开发带有窗体的插件,提供了 IQFormService 接口的封装实现。要使用该接口,需要按以下步骤执行: 【宿主程序】 1、如果宿主程序是 VCL 程序,在某个模块的 uses 小节,加入 qplugins.vcl.messages 单元,以便引入对 Windows 消息的扩展支持服务;
[QMacros] 复杂宏参数的传递
QMacros 的宏支持传递参数,其参数的格式参照 JSON 执行,所以 QMacros 的参数支持 JSON 所有的数据类型:null、true/false、数值、字符串、对象和数组,字符串中内容的转义也遵守 JSON 的规则。 【注意】 如果 QMacros 调用 Complie 或 Replace 时,标志位指定
[QMacros]示例:使用 QMacros 玩转 HTML 模板
我们在实际开发中,由于各种各样的原因,可能会结合浏览器来实现一些 Delphi 本身不好实现的效果。而如果网页是靠拼字符串来完成,显然其效率不是太理想。而如果结合 QMacros ,你会发现一切都变的那么简单。QMacros 的示例中包含了一个新的 HTML 模板示例代码,我们来解读其中与 QMacros 相关的部分,
[QMacros]更新:新增 MRF_ENABLE_ESCAPE 和 MRF_IGNORE_MISSED 标志位
【更新说明】 新增了两个标志位来更好的支持模板功能: MRF_ENABLE_ESCAPE 启用模板中的转义字符支持,转义字符以反斜线引起,后跟要转义的字符,如果非特殊转义字符,则为后面的字符。QMacros 支持的特殊转义字符包括,其含义和 QJson 的转义支持一致,但\后跟其它字符时,会返回其它字符,而不会出错:
[QDAC]QSendmail 单元已经加入到 QDAC 项目家族
【注意】QSendMail 支持 XE 以后的版本,以前的版本由于默认携带的 Indy 版本问题,无法直接支持。要在 XE 以前的版本编译,请在其上手动安装新版的 Indy 后再编译。 QSendmail 单元用于实现跨平台的邮件发送,它基于 Indy 的 TIdSmtpServer 实现,并简化了相应的接口,原来没有
[QMacros] 使用宏替换在百度地图上加标注
这段代码是我实际使用的一段代码,贴出来分享给大家。 procedure TBaiduMapMarker.Changed; var S: String; ASavePoint: Integer; const STempate: String = ‘if(typeof(%MarkerName%) != ”undefine
[QMacros] 教程: 使用 QMacros 从 PHP 脚本中获取使用的变量名称列表
【注】本教程仅出于演示目的,并不代表作者推荐或者反对某种做法,也不代表这些代码有任何其它实际用途。 QMacros 的是一个高效的栈式查找替换引擎,为您提供丰富的功能。下面的代码演示了如何从一段 PHP+HTML 混合代码得到所有的 PHP 定义的变量名(其中源代码放到了Memo1 里,输出的变量名称直接放到了Memo
[QWorker]更新:修正了特定场景下,空闲工作者全部被解雇而引起的问题
【问题描述】 该问题是由于解雇策略没有考虑到长时间作业而引起的。比如,我们投递两个长时间作业和一个间隔时间很长的重复作业,然后如果长时间没有投递新的作业,由于其它工作者长时间无作业处理,会被自动解雇,只剩下最后两个长时间作业的工作者在工作,从而无法处理间隔时间很长的重复作业。 【严重程度】 高 【更新级别】 推荐 【特
[QMacros] 更新:增加对用户自定义规则的宏名称解析的支持
QMacros 默认是通过宏的开始字符串和结束字符串来区隔宏名称的。但这并不是所有的时候都能满足我们的需要,比如下面的字符串中,我们用 $ 来开始宏名称,遇到非数字时,宏名称就结束: Replace $1.Name to $2.Name 根据前述规则,$1 和 $2 我们人工就可以解析出两个宏 1 和 2,而由于没有宏
[QLog] 更新:修正了同时指定 ARenameHistory 和 AOneFilePerDay 时重命名上次的日志文件的问题
【问题描述】 如果设置文件日志时,SetDefaultLogFile 同时指定的 ARenameHistory 和 AOneFilePerDay 参数为 true,无论是否日志文件是今天创建的,都会被重命名。 【严重程度】 中 【更级级别】 可选
[专题] QAMF – Delphi 下 AMF 0 和 AMF 3 格式支持库
AMF 是 Adobe Message Format 的缩写,是 Adobe 的一种专用的数据格式,Flash 和 Flex 平台用的都是它。有许多朋友一直想要一个 Delphi 下对 AMF 格式完整支持的库,而目前开源和非开源的部分都没有找到合适的库,所以在朋友们的支持下,特编写这么一个 AMF 格式的支持库奉献给
[QWorker] Delay 函数新增 ARepeat 参数用来实现重复延迟作业
QWorker 提供了多种重复作业的支持,但是,如果一个作业执行的时间超过了重复间隔,下一次作业不会等待上一次作业结束就会执行,这在某些需求场景下会造成不便。以前我建议大家用人工调用 Delay 的方式来解决这一问题,现在不需要了,QWorker 的 Delay 函数增加了这样一个参数,来简化您的编程: 先看一下函数声
[QAMF] QAMF 的基本用法示例
QAMF 是 QDAC 项目中的一个新成员,用来支持 AMF 格式的解析。受限于作者手头的 AMF 资料的欠缺,可能有些实现并不一定 100% 正确,如果大家在使用过程中发现什么问题,请提供一个具体的详细测试用例,并请说明: 1、原始需要解析或生成的数据包; 2、重现问题的测试程序 3、问题的具体描述 再次感谢大家对
[QAMF] AMF 0 数据类型存贮格式详解
本文内容仅供参考,如有错误,欢迎指正。 1、双精度浮点数 类型编号:0 格式:IEEE-754 的8字节 BE 编码 2、布尔 类型编号:1 格式:单字节 备注:0 为 false,其它值为 true 3、字符串 类型编号:2 格式:[字符串长度][字符串内容] 备注:字符串长度为两个字节的 WORD 类型(BE编码)
[QAMF] AMF 格式分析2 – 基本数据类型
AMF 格式的数据类型分为两种,一种是 AMF 0 规定的数据类型,另一种就是 AMF 3 规定的数据类型。它们之间是通过 AMF0 中一个特殊的类型 0x11 (类型编码为 17)来进行转换的。也就是说,在按 AMF 0 解析内容时,如果遇到类型的编码为 0x11 的项目,那就说明这个项目是 AMF3 格式的对象了,
[QAMF] AMF 格式分析 1 – 解析打包后的数据头部
AMF 格式是 Adobe 推出的一个二进制数据格式,说实在话,我更愿意用 MsgPack 或 JSON。不过这里不讨论这一点。我们来讨论一下一个完整的 AMF 格式数据。说实在话,我能说 Adobe 的官方文档写的很烂吗?让人看着简直是天书一样! AMF 0 :http://wwwimages.adobe.com/c
[QXML] 更新:修正了根结点下添加多个子结点时,保存后恢复按原路径无法访问的问题
【问题描述】 问题是由于根结点有多个子结点时,为了保证 xml 的兼容性(XML 规范要求只能有一个根结点),所以人为添加了一个<xml>做为根结点。但在反过来时,未进行相应的处理造成的。一般不推荐在根结点下添加额外的内容。 【影响范围】 在根结点下添加了多个子项目的 XML 项目 【严重程度】 低 【更新
[QMsgPack/QJson] 更新:修正了修改结点名字时,没有重新计算结点名称哈希值的问题
【问题描述】 该问题是由于 DoNodeNameChanged 的重载里,Rehash 子函数在查找结点原来的哈希记录时,使用了错误的哈希表对象引起的。 【严重程度】 高 【影响范围】 使用 TQHashedJson 和 TQHashedMsgPack 的用户 【推荐级别】 歌德 【特别感谢】 QQ