[技巧]C++ Builder 中慎用 Supports 函数来取接口的实例

实际上,这个问题在于 C++ Builder 是通过一个模板来处理接口的自动释放的,实际上相当于玩了一个auto_ptr,但 Supports 需要的第三个参数,确是一个指针,那么这个就用来比较麻烦了。 这样用: _di_IQService AService; if(Supports(PluginsManager()-

[QPlugins] DLL 中插件提供窗口服务指南

QPlugins 为了简化大家开发带有窗体的插件,提供了 IQFormService 接口的封装实现。要使用该接口,需要按以下步骤执行: 【宿主程序】 1、如果宿主程序是 VCL 程序,在某个模块的 uses 小节,加入 qplugins.vcl.messages 单元,以便引入对 Windows 消息的扩展支持服务;

[Bugs] Delphi 10 在一个 DLL 中嵌入 FMX 窗体时出在退出时出错

测试方法: 1、创建一个DLL; 2、加入一个FMX窗体,在提示是否启用 FMX 框架时选择启用; 3、创建一个调用并以模态方式显示这个FMX窗体; 4、在宿主程序(FMX或VCL皆可),动态加载这个DLL,并调用导出的函数; 5、卸载这个DLL,系统出错; 示例工程下载  

[付费教程] Delphi 中的字符串类型及用法已发布

字符串类型是我们常用的数据类型,那么,关于 Delphi 中字符串的操作你都了解吗?本节视频教程和你一切详细说说 Delphi 字符串类型、编码、解析、转换及其它处理的问题。 【价格】 以人民币计价: 个人用户:50元 企业用户:300元 【视频长度】 约 43 分钟 【视频语言】 中文,普通话 【视频编码】 格式:H

[QPlugins] 第一个 FMX 插件工作了~~~

QPlugins 对 FMX 的支持目前有一个好消息报告给大家,那就是 FMX 的插件工作了。目前仅限于 Windows 平台,测试的宿主程序是用 VCL 编写的,而插件是用 FMX 编写的一个窗口。当然现在第一版 Bug 多多,退出时还有异常,不过这是一个良好的开始。下面是测试程序的动态截图: 未来是光明的,前途是坎

[FMX] 字体大小调整两种方法的另类对比

在编写跨平台的程序时,一般控件的字体的名称和大小都是平台默认的。我们可以通过两种方式调整字体的大小: 设置 TextSettings.Font.Size 的值 修改控件的 Scale 属性,按比例缩放 我们看一下对比图,第一个是 Windows 下,分别是调整缩放和直接设置 TextSettings.Font.Size

[付费教程] Delphi/C++ Builder 程序调试教程已经录制并上架

教程以 Delphi 录制,但由于 Delphi 和 C++ Builder 使用同一 IDE,所以绝大部分内容同样适用于 C++ Builder。 【价格】 以人民币计价: 个人用户:50元 企业用户:300元 【视频长度】 约 82 分钟 【视频语言】 中文,普通话 【视频编码】 格式:H.264 MP4 分辨率:

[杂谈] 用户、角色及权限漫谈

用户、角色、权限是一个软件里的多用户系统的基本内容。那么它们之间的相互关系,以及在系统设计中要考虑啥呢? 首先,是它们之间的关系,其基本关系我们可以概括为:一个用户隶属于一到多个角色,它的权限来自于自身和所隶属的角色继承而来。而权限本身也可以分组,子权限是父权限的一个子项,如果用户选中了父权限,那么它也就同时拥有了子权

[专题] Delphi / QDAC 付费视频教程专区

本专区的内容视频是作者或群友原创,需要付费购买,会根据大家的需要录制和推出。 【购买方式】 申请加入 QDAC 视频付费教程群 :201867767; 找到下面视频的价格,然后通过以下方式付费: [支付宝] guansonghuan@sina.com 姓名:管耸寰(请标明QQ号) [QQ] 直接群支付,或给群主发红包

[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 实现,并简化了相应的接口,原来没有

[技巧] 以十六进制显示数据内容

下面这个函数没有进行效率优化,如果优化下会很快,会提高很多倍,不过满足一般的使用是够了。如果大家有兴趣,可以自己优化下,优化的主要方式是预先计算好需要的内存空间,然后直接填充,而不是象下面的算法一样,由于频率的拼接字符串,造成内存的不断分配释放。 function HexView(ABytes: TBytes): St

[技巧] 使用 THttpClient 时获取跳转后的 URL

Delphi 自带的 THttpClient 是一个很好的 Http/Https 协议的跨平台实现,不过,现在的版本功能有些地方封装的还是不太合理,造成使用中存在一些不便。比如,我们从一个网址通过 HTTP 302 等跳转到另一个网址时,无法对跳转的过程进行精细控制,也无法获取到跳转后的目标地址。本文给大家提供一种方法

[QMacros] 教程: 使用 QMacros 从 PHP 脚本中获取使用的变量名称列表

【注】本教程仅出于演示目的,并不代表作者推荐或者反对某种做法,也不代表这些代码有任何其它实际用途。 QMacros 的是一个高效的栈式查找替换引擎,为您提供丰富的功能。下面的代码演示了如何从一段 PHP+HTML 混合代码得到所有的 PHP 定义的变量名(其中源代码放到了Memo1 里,输出的变量名称直接放到了Memo

[QWorker]更新:修正了特定场景下,空闲工作者全部被解雇而引起的问题

【问题描述】 该问题是由于解雇策略没有考虑到长时间作业而引起的。比如,我们投递两个长时间作业和一个间隔时间很长的重复作业,然后如果长时间没有投递新的作业,由于其它工作者长时间无作业处理,会被自动解雇,只剩下最后两个长时间作业的工作者在工作,从而无法处理间隔时间很长的重复作业。 【严重程度】 高 【更新级别】 推荐 【特

[QMacros] 更新:增加对用户自定义规则的宏名称解析的支持

QMacros 默认是通过宏的开始字符串和结束字符串来区隔宏名称的。但这并不是所有的时候都能满足我们的需要,比如下面的字符串中,我们用 $ 来开始宏名称,遇到非数字时,宏名称就结束: Replace $1.Name to $2.Name 根据前述规则,$1 和 $2 我们人工就可以解析出两个宏 1 和 2,而由于没有宏