对于程序员来说,如果一个功能对用户来说,不可用,到底是禁用还是隐藏许多时候是要纠结下的事情。实际上,程序编写过程中,一些细节的控制是一种很主观和即兴的东西,但为了统一的用户体验,一般来说,我觉得还是统一下规则为好。 首先,我们考虑我们这项功能为什么对用户不可用? 这项功能用户没有权限访问; 这项功能对于当前数据的状态来
月度归档: 2015 年 5 月
[QMacros] 使用模板生成随机电话号码
这是一个使用 QMacros 的 Volatile 类型的宏来实现的小例子,首先我们看代码: procedure TfrmMain.Button1Click(Sender: TObject); var AMacros: TQMacroManager; AReplace:TQMacroComplied; I: Integ
QJSON 更新 – 增加使用Base64编码二进制数据的默认支持
【更新说明】 新增函数 EncodeJsonBinaryAsBase64 直接用来支持你在 AsBytes 、 ValueFromStream、ValueFromFile 赋值时,二进制编码为字符串时的处理方式。如果你不需要,只需要调用 EncodeJsonBinaryAsHex 就可以恢复原始的十六进制编码方式。 【
QString 更新 – 修正了 ParseNumeric / ParseInt 在解析特定数值时出错的问题
【问题描述】 1、ParseInt 在解析超长的数字字符串时,由于溢出会返回负数。新的算法检查这一情况,并认为不是数值。 2、ParseNumeric 在解析超大的指数时,出现溢出时会抛出异常。新的算法检查这一情况,并返回false。 【严重程度】 中 【更新级别】 推荐 【特别感谢】 中国制造
QMacros 更新 – 修正了InternalCompile在编译时比较宏开始位置的一处问题
【问题描述】 函数 InternalCompile 的子函数 TestMacro 在测试是否是宏的起始段时,用的是 CompareMem,而忘记了将 LS 的长度×2,所以造成比较的长度不足,从而可能出现问题(CompareMem(p, pms, LS) 应为 CompareMem(p, pms, LS shl 1)
QString 更新 – 修正了StringReplaceWithW 函数的两处问题
【问题描述】 1、 StringReplaceWithW 在 AWithTag 为 True 时,替换的结果不符合预期; 2、 StringReplaceWithW 在替换的结果字符串为空时,由于计算需要的目标内存长度错误,造成访问无效地址。 【更新级别】 推荐 【严重程序】 高 【特别感谢】 麦子仲肥
QLog 更新 – TQLogFileWriter 和 TQLogConsoleWriter 功能变更
【更新说明】 1、TQLogFileWriter.HandleNeeded 方法原来没有检查日志文件的目录是否存在,结果就可能无法创建日志文件,新代码加入了路径检查,不存在,则尝试强制创建路径。 2、TQLogConsoleWriter 在 Windows 下,加入了一个重载的构造函数来决定日志是直接输出到控制台还是输
关于 QLog 的 1234 那点事
QLog 是 QDAC 项目中包含的日志记录模块,提供了一个高性能、可扩展、简单易用的日志记录功能。 QLog 的日志架构层级如下图所示: TQLog :日志记录的大管家 TQLog 负责: 缓存要记录的日志内容; 为外部日志记录提供接口; 管理日志广播对象,用于广播日志到不同的输出对象; 默认情况下,QLog 创建了
QXML 更新 – 修改 TQXMLNode.Clear 加入参数来决定是否同时清空属性
【更新说明】 * Clear 函数原来的实现是将属性和子结点一齐清空,但有时我们只需要清空结点而保证属性,所以为 Clear 函数增加了这么一个参数来决定是否清空结点的属性。如果为 True,则清空,否则不清空,默认为 True。 * 修正了 Encode 编码时,如果 ADoFormat 参数为 False 时依然会
Delphi / C++ Builder 中字符串类型详解
字符串在编程中是一个常见的类型,但左一个类型,右一个类型可能把许多人都弄迷糊了。我写这篇文章,试图给大家理清 Delphi / C++ Builder 中的字符串类型。关于这些字符串类型的历史,我们就不再啰嗦,历史就是历史,现在我们面对现实。 String 类型 String 类型在 Delphi / C++ Buil
[FMX] 发现一个新的 Bug,希望后面的版本中能够解决
【问题描述】 如果目标平台为 Android,设置了一个窗口的 Transparency 为 True,则后面再 Show 出来的窗口会在它的后面,而不管你如何调用 BringToFront 还设置设置 FormStyle 为 StayOnTop。至于 Windows 平台没这个问题,而 iOS 和 OSX 平台我没有
QString 新增三个函数 CheckPassword / PasswordScale / StringReplaceW
1、CheckPassword /PasswordScale 函数来检验密码的强度 这组函数用于检查密码的强度,CheckPassword 会返回一个评定的强度级别,如果级别较低,则应提示用户更改密码,以适应强度要求。如: if CheckPassword(APassword) in [pslLowest,pslLow
JCL 2.7+JVCL 3.48 已经可以在 XE 8 下编译和安装
目前官方还在开发中,没有正式的发布,但已经可以正常安装和使用了。 下载地址:百度网盘 安装顺序: 先运行 JCL 子目录下的 install.bat,安装 JCL,然后再运行 JVCL 子目录下的 install.bat 安装。 已知问题: 安装 JCL 时,会提示生成 HPP 错误,忽略即可。
[FMX] 使用 Canvas 计算大小与物理大小计算时,别忘了缩放比
FMX 的 Canvas 的功能就不说了,但你注意到了吗?Canvas.TextWidth 等函数返回的大小,如果你当真,那你就会发现现实和理想差的太远了。你需要通过控件的 Scene.GetSceneScale 来获得一个缩放比,与原始的进行缩放后,才是放到屏幕上的实际大小。 一个简单的例子,我们计算一个Label上
[专题] FMX 下的组件
这个帖子打算整理下 FMX 下的各种组件,以方便大家使用,但版权问题请各自解决,至于怎么解决,相信你懂的。 此贴欢迎大家补充。 【系统】 RiverSoftAVG Inference Engine Component Suite(一个逻辑推理引擎) Fuzzy Logic Component Library(模糊逻辑组
阿姆达尔定律
阿姆达尔定律(英语:Amdahl’s law,Amdahl’s argument),一个计算机科学界的经验法则,因吉恩·阿姆达尔而得名。它代表了处理器平行运算之后效率提升的能力。 并行计算中的加速比是用并行前的执行速度和并行后的执行速度之比来表示的,它表示了在并行化之后的效率提升情况。 阿姆达尔
DIOCP 小白精简版(YxdIOCP)
YxdIocp (DIOCP修改版) SVN: https://github.com/yangyxd/YxdIOCP 【特别说明】 本源码由YangYxd(音儿小白)以网友天地弦的DIOCP为基础修改优化而来。YxdIocp与DIOCP使用方式略有不同,不完全兼容!! 我会接收大家提交的B
[广告] 欢迎大家注册论坛账号 – delphi.net.cn
Delphi.net.cn 是一个全新的面向 Delphi 开发人员的论坛,欢迎大家注册。 注册链接:http://delphi.net.cn/ QDAC 专题 | DIOCP 专题 | MyBean 专题 | WisdomPluginFramework专题 另 自家茶园2015季春茶少量销售
QLog 更新 – 新增多平台控制台日志输出支持
【更新说明】 + 新增 Logs.Mode 属性来确定日志是要同步( lmSync )还是异步( lmAsyn )记录,对于同步记录的日志,在 PostLog 后,只有在日志写入完成后才会返回,这会影响程序的执行效率,优点程序一旦出错,日志已经输出,可能立即查看。默认模式为 lmAsyn,即异步模式。 + 新增 Set
DIOCP 音儿小白精简版已经放到下载里供大家下载测试
这个版本是音儿精简自天地弦的 DIOCP ,并精简了 QWorker 做为 Iocp.Task ,欢迎大家下载测试。 下载地址:百度网盘