终于熬过了今年的最后一天班,哥们怀着兴奋,下班了赶紧去放松了一下,再吃碗热呼呼的牛肉面,回来洗个热水澡,感觉太舒服了。 当然了,这么重要的日了,不能忘了写篇文章,介绍下最近整的这个基础UI库,不能顾着自个儿舒服了,要让大家也开开心心才对吧?哈,顺便各位走过路过的满天神佛拜个早年,祝大家新春快乐,恭喜发财!(好吧,我还想
月度归档: 2016 年 1 月
[FMX] 使用 TLine 做参考线来实现复杂布局控制
昨天有朋友看到FMX 布局策略 一文中下图的布局,想知道如何设计这种复杂的布局。实际上,这种布局确实比较复杂,设计时确实比较费劲的。 1、钟表环的设计 这个比较简单,用两个 TCircle,假设分别命名为clOuter、clInner,我们将 clInner 的父设置为 clOuter,然后设置 clInner 的 M
[译]FMX 布局策略
【注】本文虽是翻译,但老外写的太啰嗦,在保持含义不变的情况下,行文会进行精简。原文来自于官方帮助。 FireMonkey 布局是其它图形对象的容器,可用来构建复杂的可视界面。FireMonkey 布局扩展了 TControl 的功能来控制子控件的对齐、大小、缩放以及成组控制控件的可能。就象 Position、Align
[QJSON+QMsgPack] 修正了 TQHashedJSON 和 TQHashedMsgPack 释放时的Bug
【问题描述】 该问题是由于先释放了内部的哈希表对象,而父类再释放时调用 Clear 时再次引用该对象造成的。 【严重级别】 高 【推荐程度】 中 【特别感谢】 QQ
[QJson+QWorker] 更新:两点小更新
【更新说明】 1、QWorker 将 MsgWaitForEvent 函数公开出来,以便其它模块使用; 2、QJson 将 SetValue.DetectValue 函数的检测方式做了下变更,直接调用 TryParseValue 而不是 ParseValue ,以避免在调试时由于检测不到合适的类型而抛出异常。 【更新级
[QWorker] 制作多线程日志输出查看Demo
要解决的问题: 有多个线程输出日志,日志内容需要在列表框中显示出来,不管日志输出的频率快慢,界面不能卡,不能闪烁。超过10万行日志时,自动删除最开始的1万行日志。 此问题涉及多线程编程,多线程输出时要更新界面的显示。 多线程的东西,当然不能忘了QWorker这样的神器,下面我们就来使用QWorker解决问题,哦,不对,
DFM->JSON 格式转换
应群友的要求,编写了一个解析 DFM 文件格式,将其转换为 JSON 格式的函数,需要引用 QJSON 和 QString 单元。代码分享给大家,供大家参考: function DFM2Json(AFileName: String): TQJson; var ADFMStream, ATemp: TMemoryStre
[技巧] 解决 Windows 8 / 10 无法通过 Screen 的 Imes 正确获取当前安装的输入法列表的问题
【问题原因】 该问题是由于微软从 Windows 8 开始,GetKeyboadLayouts 函数不再有效,而 VCL 中仍然是通过该方法获取输入法列表造成的。希望下个版本的 Delphi/C++ Builder 能够解决。 【解决办法】 如果是 Win8+,则自己从注册表读,如果是Win 7 等以前的版本,则直接
[FMX] 使用 FMX 开发 Android 程序的一点小体会
1、FMX 开发 Android 程序,你可以利用现有的控件组合出复杂的控件效果,这点很强大。比如,我们都知道默认 FMX 的 SpeedButton 和 Button 等都没有图标,没有关系,我们可以有100种方法让它拥有图标,最简单的莫过于直接放一个 TImage 和 TLabel 上去,然后调整下 TImage
[FMX] Android 下为你的程序开启抗锯齿
先看一张图:HQ-0 是简单设置 Form 的 Quality 为 HighQuality 的结果,HQ-1 是做了进一步设置的结果,DQ 是默认的效果,大家可以看到,HQ-0 和默认的没有抗锯齿的效果没啥区别。 那么,问题的关键在那里呢? 问题的关键就在你设置完品质选项后,还需要调用一个函数,缺少它,更改品质的代码不
[FMX] 使用 TabControl 实现页面滑动效果之二
之前的文章 写法自己要写的东西多一些,实际上,FMX 的Standard Actions 里提供了两个标准的动作,可以方便的实现。 1、老规矩,放上 TabControl,添加几页,然后随便放点内容。 2、添加 TGuestureManager 和 TActionList,然后设置 TabControl.Touch.G
[教程] FMX-实现简单的环形进度条
谁说进度条一定要是长长的一条?太三俗,特三俗!今天,利用 FMX 我们来做一个环形的进度条。 1、创建一个空白的 FMX 应用(这个步骤略过了,New->Project->Delphi Project->Multi-Device Application); 2、放一个TCircle,我们命名为clBa
[Android]Delphi/C++ Builder 开发 Android 程序启动画面简单完美解决方案
前面和音儿一起研究 Android 下启动画面的问题,虽然问题得到了解决,但是,总是感觉太麻烦,主要的问题: 1、需要手工去修改XML文件; 2、而且需要对系统本身做出修改; 3、方案还不够完善,需要较多的步骤; 现在,经常不断的折腾,终于找到了一个相对简单的解决方案: 1、先创建一个470×320像素的空白
[QWorker] 更新:修正了WaitJob 函数可能陷入死循环的问题
【问题描述】 由于 WaitJob 函数中循环遍历简单作业时,指针未跳转下一个作业,造成可能陷入死循环。 【严重级别】 中 【更新级别】 推荐 【特别感谢】 小朱 发现并报告此问题
[FMX] Android APP 启动黑屏优化补丁
使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 2016.01.16 Version: 1.0.0 QDAC官方群: 250530692 ******************
[杂谈] 一个整数转其二进制表示的小函数
应群友的要求写的一个小函数,将一个32位整数转换为其二进制表示: function IntToBinStr(v: Integer): String; var b: array [0 .. 32] of Char; o: Integer; const Chars: array [0 .. 1] of Char = (‘0
[教程] QPlugins 插件引擎教程 – 让 QPlugins 协助你解耦程序
程序就是一堆面条,理顺了,好用又好看,如果缠在一起,那就会煮成一坨面疙瘩了。QPlugins 虽然是一个插件引擎,但是记住我们的理念,插件即服务,服务也就是插件一种插接方式。 首先,我们了解的第一个基于 QPlugins 的 Demo 位于 DockForms 里的 InProcess 目录下。它的目标是将不同单元的窗
[FMX] 步步惊心 – FMX Canvas 研究笔记
【注】下面的内容,仅适用于 Delphi/C++ Builder X,至于其它版本,不做任何保证。 研究一个新的东西,难免会将老的观念带进来,也难免会遇到不同的坑,有些坑是自己挖的,有些坑是厂商或作者挖的,一路走来,堪称步步惊心。FMX 目前来说,改进很大,但坑仍然还有很多,慢慢研究,慢慢摸索,希望与大家一同进步。 1
[QJSON]更新:合并、交集和差异比较
QJSON 新版已经支持两个JSON对象的合并、求公共值和差异值。详细的用法,请参考 QJSON 的示例。注意合并时,jmmAppend 方法的结果可能有些解析器无法完整支持。
[QJSON] 更新:保存 JSON 中的注释
QJSON 新版中增加了对注释保存的支持,早先版本的 QJSON 对于注释会自动跳过,不会保存注释的内容。但这一功能在 StrictJson 为 true 时不会支持,以兼容更多的解析器。 QJSON 中,注释的保存通过 CommentStyle 属性来控制: jcsIgnore : 忽略掉注释,保存时不会保存注释的内