[译]Delphi 10.4 新变化:定制拖管记录(结构)类型

原文链接 此文为简略翻译,更详细内容请访问原文。 现有的 Delphi 中的记录如果包含复杂类型,如接口、动态数组等初始化和记录的赋值都是由 Delphi 默认提供的过程完成的,10.4 允许用户定制这些操作,只要用户实现对应的函数就可以。 初始化函数, 重载类操作 Initialize 清理函数,重载类操作 Fina

[译] Delphi 10.4 新变化:重新设计的 Code Insight

原链接 此文为使用 DeepL 机翻并进行了略微的调整。 在10.4中,我们重新实现了代码完成和其他功能,这是IDE十年来最重要的变化之一。 什么是 Code Insight 首先是一些背景。如果你对Code Insight很熟悉,请跳过前面…… Code Insight 是我们对编辑器中的一组 IDE 生产力功能的命

[杂谈] 从 Windows 10 到 Linux

自从最近一段时间,我笔记本自带的 Windows 莫名其妙的越来越慢后,已经严重影响自己开发的心情。在找不到什么原因的情况下,决定尝试在 Linux 跑下,看看是不是我的笔记本硬件已经跟不上 Windows 10 更新的步伐。所以,我先下载了 LinuxLite,这个发行版最大的好处是内核更新的比较快,然后使用其中的

BIOS 快捷键

笔记本品牌,启动时长按的按键: 苹果笔记本 开机/重启时按住“option”键[即Alt键]不放,进入选择启动方式 联想笔记本 F12 宏基笔记本 F12 华硕笔记本 ESC 惠普笔记本 F9 联想Thinkpad F12 戴尔笔记本 F12 神舟笔记本 F12 东芝笔记本 F12 三星笔记本 F12 IBM笔记本 F

[QPinyinSpells]获取汉字拼音

怎么说呢,一直有人想要这么一个东西,我自己实际上也一直想有这么一个东西。QString 提供了一个获取拼音首字母的函数,但那个仅限于 GB2312 中的部分字符,而不能兼容 Unicode 29000 多个汉字。 QPinyinSpells 就是为解决这个问题而产生 的,它支持: 多音字的识别,可以同时返回多音字的多个

[教程] QWorker 中如果强制一个死掉的作业退出

虽然 QWorker 一直不推荐强行中止一个作业(资源泄露几乎无解),但在实际的操作中,确实存在作业执行过程中,因为某种不可预知的原因而被锁死的问题。为了解决这一问题,QWorker 新的版本增加了相关的属性和事件让用户能够对此进行特殊处理。 要强行结束一个死掉的作业,需要做以下工作: 设置 JobFrozenTime

[教程]C++ Builder 中不同命名空间中命名冲突的一种解决办法

Delphi 中不同单元中,同一名称类型的处理是以最后的一个为准。如果是在 C++ 中,如果通过 using namespace 语句同时使用的两个命名空间中有两个同名的类型,比如我们在 C++ Builder 中使用 Graphics 32 库,其 Gr32 命名空间中定义了 TPoint、TRect 等 Syste

[教程]QWorker 中如何动态修改重复延迟作业的延迟间隔

一般的延迟重复作业的直接调用 Delay 时,指定间隔时间和重复参数,就可以自动启动了重复的延迟作业。但默认情况上,这个延迟作业的间隔时长是固定的,要动态修改这个时长,我们可以如下操作: 1、修改作业对象实例的 Source.FirstDelay 参数的值。如下所示: 注意 FirstDelay 的时间精度是 0.1m

[元旦礼物] 使用 TComTypeLib 调用 .Net DLL

首先感谢 2019 年许多的朋友对 QDAC 项目的支持,2019 年因为精力的原因,项目的更新和进度可能并不如大家的意。但是作者想说,我并没有放弃 QDAC 项目,只要大家还在, QDAC 项目就还在,就会继续维护。 下面进入正题。 【前置条件】 1、这个库是继于 COM 的 IDispatch 接口实现的,所以要求

[元旦]2020 继往开来,未来已来

不知不觉又是一年,我们迎来了 2020 是一个吉祥的年份。无论过去多少的苦辣辛酸还是甜蜜快乐,往者已不可追,我们要总结 2019 的成败得失,以此为基为 2020 奠基。 回顾过去,总觉得过得太快,展望未来,总觉得明天还来的及。但我想说,不管过去是弱小还是强大,得失不过一瞬,人生不已,奋斗不止。我们已经进入 2020

[教程]在 Delphi 中调用 .Net 的 DLL

首先,明确一点:本文提供的方法,要求 .NET 的 DLL 必需编译为支持 COM 接口的模式,这样子,它就可以让其它语言通过 IDispatch 接口进行调用。具体的教程,请自行百度。下面是网上搜到的一个截图。 生成后有 TLB 和 DLL 两种类型的文件,TLB 存贮了 DLL 中相关的接口的定义。接下来,如果我们

[教程]CentOS 下将 tomcat 安装为系统服务

本教程假设 tomcat 安装在 /usr/local/tomcat 目录下,JDK 安装到 /usr/local/tomcat/jdk 目录下,如果是其它目录,将其替换(如果使用openJDK,则替换为对应的 open JDK 目录,比如 /usr/lib/jvm/jre)。另外,本文不做任何保证。 1、执行以下脚本

[FMX]放大二维码显示

在以前的文章中,我介绍过如何在 FMX 中绘制二维码,但没有给出放大显示的代码,这里给出下,方便大家使用。 然后直接调用 ScaleQRBitmap 就可以了。注意 ASize 的计算应考虑进入 SceneScale 的值。参考代码如下: 程序运行效果:

[教程]基于 RTTI 创建特定类型的实例

在 Delphi 人群中,有些人总想通过名称,然后动态创建指定类的实例而不得其门而入,不得不将类型先注册,然后再回调解决这个问题。实际上,通过 RTTI 来创建实例是有办法的。下面是基本的步骤: 1、找到类型对应的 TRttiType 信息。这里有几个方法: GetType 方法,这个需要知道目标类型的 TClass/

使用 QDAC 创建 Linux 守护进程

上一篇文章中介绍了如何在 Delphi 中创建 Linux 守护进程,而这篇文章则试图将上文的操作简单化,不要再去考虑那么多事事非非。 【基础入门】 1、引入 qconsole_looper.pas 单元,这个单元本身原来是为了能够在控制台程序中运行主线程函数而引入的,换句话说,引用它后可以保证 QWorker 在控制