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

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

使用 QDAC 创建 Linux 守护进程

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

在 Delphi 中创建 Linux 守护程序(服务进程)

本文意译自 原文链接,语言上做了精炼和排版的变更,以便更简洁明了。 Delphi 开始支持 Linux 平台为 Delphi 开发人员开辟了创建 Linux 服务器应用程序的可能。但遗憾的是,目前 RAD Studio IDE 并不包括创建 Linux 守护程序()服务)。 【注意】本文假设您已经能够配置好 Linux

QDAC 付费产品概览

QDAC 开源项目除了为大家提供免费的开源框架外,为保证基本的费用支出,还有部分付费开源的组件带给大家,除非特别说明,不会依赖除了 QDAC 免费开源项目内容外的其它组件,另外下面的所有价格单元均为人民币元。 QLang:Delphi 下超级方便的多语言支持工具,部分良好编码的程序可以做到只需引用 qlang 单元,就

使用 ProcessExplorer 查看 Delphi/C++ Builder 的线程调用栈

ProcessExplorer 可以查看运行中进程的各种信息,包括特定线程的堆栈信息。这在我们程序出现死循环或者无响应时等问题时,除了在客户机器上重装一套环境或Remote Debugger 之外(吐槽下 PAServer/RemoteDebugger 在 Windows 下真心不太好用),另外一种在客户机器上能够找到

[QHttpRequest]使用自定义 DNS 来应对 DNS 劫持

为了保证业务的稳定性,避免在由于用户的 DNS 服务器返回错误的 IP 地址,造成程序无法正常运行的情况,QHttpRequest 新增了一个 OnDnsLookup 事件,以便让用户自己处理 DNS 请求。 举个例子:我们要获取 https://blog.qdac.cc 的内容,如果我们指定了 OnDnsLookup

民政部最新的行政区划信息下载

以前都是从一些别的网站上抓取行政区划数据,发现民政部和国家统计局实际上提供了相关信息,访问地址如下: 民政部 | 国家统计局 国家统计局是精确到村的,但好象没有民政部的新,但使用应该问题不大。民政部则是没有这样整理好。 另外有行政区划信息的网站 行政区划网站 提供一些信息查询,但还是以最新的国家统计局官网为准吧。 国家

[教程]栈上接口对象在匿名函数中的使用时请注意内存泄露问题

首先看下面的示例代码: 一般来说,我们认为 Delphi 自己管理接口的引用计数,所以不太会注意,但是,在上面的示例中,由于要保证 ATest 在匿名函数中的可用性,Delphi 并没有在函数退出时,减少 ATest 的引用计数,而在匿名函数执行完成后,同样也并没有减少计数,这就造成了 ATest 实例的引用计数没有减

[教程]使用 Delphi 获取当前操作系统的时区

嗯,这段代码实际上已经集成到 QString 单元了,所以你可以直接调用 GetTimezone 函数来获得时区了。用 GetTimezoneText 可以获得时区的字符串表示。 代码不长,用起来也简单,它实际上返回的时区对应的分钟数,比如北京时间是480,也就是 8 小时,其它依次类推。使用 GetTimezonTe

[转]LEO原创-FMX之你不知道的ARC

源贴地址 FMX加入了ARC技术,对象创建后不用释放,FMX会帮你释放,是不是这样就不用关心对象的释放了呢,非也! 写简单的代码,这个功能也许很好用,但如果你写的是一个项目,那隐藏的坑无形中大大的增加开发难度, 开发人员需要更加小心注意对象的释放问题:你原来正常运作的代码,在FMX下,极有可能运作不正确,灵异现象熊出落

[FMX]使用 TListBox.ItemsExchange 而不是??来交换列表中两个项目的顺序

上面的 ?? 有没有几个想当然的和我一样,试图用 TListBox.Items.Exchange 来交互两个项目的顺序的?如果你那么做了,恭喜您,迷茫吧~~,彷徨吧~~,陪我一起放羔羊吧~~~ p实际上官方看来也知道这个问题,在TListBox的级别上直接提供了一个 ItemsExchange 函数来完成这一工作。我想

[QMQTT]MQTT 协议的 Delphi 实现

QMQTT 实现是基于 MQTT 协议标准编写的 Delphi 客户端程序,不依赖于任何第三方的 DLL 或组件实现。它的主要特性如下: 完整支持 MQTT 3.1.1 协议版本(5.0版也将支持) 不依赖任何第三方组件(QDAC 内也只是依赖于 QString 单元) 支持主题的多重派发,也就是说同一个主题在程序中,

[FMX]为 TControl 增加 DisableAlign 和 EnableAlign 方法

官方没有提供这两个方法,但我们有时候需要调整 FMX 的布局,而这一切都需要修改 FDisableAlign 这个受保护的成员的值,而要修改它的值,在以前的文章中提供了好几种方法,当然最简单的是直接加 class helper。这里我们就采用这一办法。 代码很简单,不需要解释,上面的函数都是返回之前是否允许对齐。要禁止

[教程]Delphi 下一种简单的水印图片制作方法

水印在现代社会中常用,网上有各种制作水印的办法,而我要说的办法,实际上简单而且好理解,那就是制作半透明的 PNG 图片覆盖到原始项目上就可以了。至于为啥不说 FMX 的实现,是因为 FMX 本身各种颜色设置中就包含了透明度信息,不需要这么折腾了。 第一步:制作水印内容,比如我们创建一个TBitmap对象,在上面随便输出

[QLog]使用 CalcPerf 来查询函数性能瓶径

QLog 最新的变动修改了 CalcPerf 函数的返回值类型,改为返回 IPerfCounter(将来可能改名为 IQPerfCounter ) 接口,与以前的相比,这个接口多了一个名为 MarkEscape 的函数,用于记录两次记录之间的时间间隔,以便进行性能计数。 第一步:声明一个用于统计性能的变量,并为其初始化

[QMathExpr]数学表达式解析和执行工具

QMathExpr 是 QDAC 家族的一个新成员,为您提供数学表达式的解析和计算功能。它支持以下特性: 加(+)、减(-)、乘(*)、除(/)、求余(%)运算,除法时支持整除和常规除法运算。由于 % 被用做求余运算符,所以如果要当做百分号处理,请先直接将 % 替换为 /100 即可,如 10*2% 替换成 10*2/

[公告] RAD Studio 10.3 来了

官方原版下载链接:HTTP FTP 官方更新说明:原版 【官方更新说明简译】 1、Delphi 语言 支持内联变量和内联变量的类型推断,说明参考上一篇 Linux 的内存管理已经不再使用 ARC 模型了,改成和 Windows 一样,NEXTGEN 定义在 Linux 平台上已经无效了 Linux 平台支持 AnsiS