TQJsonOutputChannel 的主要作用是用来快速写入大型的 JSON 数据到文件中,所以整体是面向写入过程设计的,不要试图用它来控制内容的修改。 假设我们要将数据内容写入到目标数据流 AStream 中: 第一步:我们需要定义一个 IQJsonStreamEncoder 的实例,它是一个结构体,所以直接在栈
分类: Delphi
[教程]使用 TQJsonInputChannel 来重复获取 JSON 对象
TQJsonInputChannel 是 QJson 新增的对象,目的是解决连续的JSON序列读取和超长的JSON数据内容读取处理的问题。 【基本步骤】 1、根据源的编码,创建对应的序列对象并设置相关事件: 2、从源中读取一块数据,然后推到 TQJsonInputChannel 实例中,不需要关心读取的块是否完整,TQ
[荐]DDNRuntime:Delphi 调用 .NET 库工具
DDNRuntime是一个用Delphi调用.NET的库。支持调用C#、VB.NET编写的程序集。支持自动导入.net dll,并创建.net接口。 官方QQ群:712048702 特性 不需要COM的支持。 支持.NET Framework和.NET Core Runtime 使用非常的简单,只需要在Delphi中申
[教程]使用平板控制远程PC时Linux被控端匹配平板分辨率
[测试平台] 1、平板:华为 MatePad Pro 12.6 +No Machine NX Player 6.1.9,物理分辨率2560×1600,设置适应客户端分辨率 2、被控端:Deepin Linux 20.2.4+No Machine NX 7.6.2,外接显示器位于 DP-1 ,原始分辨率 344
[译]RAD Studio 11 更新说明
原文链接:官方文档 官方ISO下载 Bug修复列表 注:本文为简译 IDE 高DPI支持 IDE 所有窗口都支持高 DPI 了,解决了高 DPI 缩放造成的模糊问题,有高分显示器,而且使用高 DPI 的开发者值得一试 VCL 窗口设计器支持定制 DPI(自动/96/自定义)缩放,FMX 本来就支持高 DPI 缩放 Op
[杂谈]OpenHarmony 路线图
这是在一篇文章中看到的,供大家参考: 目前知道的是,2.2 已经发布比原计划晚了一些,全力准备 3.0 版。早期的路标规划参考下图,传言接下来全力冲向3.0版本了,那将是一个值得纪念的版本:
[教程]修复 TNetHttpClient Windows 下Header 中包含UTF8编码字符时乱码的问题
[修复思路] 将编码转换回 ACP,然后再用 UTF-8 编码转换回来。 [修复代码] 如果引用 QString 单元,则直接 QString.Utf8Decode(PQCharA(QString.AnsiDecode(Value)),-1) 转换下就可以。 [问题原因] 该问题是由于 Windows 的 WinHtt
【杂谈】鸿蒙 OS 对开发人员带来的机遇和挑战-挑战篇下
【挑战4】鸿蒙会不会获得大量软硬件厂商的支持?答案:会理由:(1)硬件方面:对于国内的物联网厂商来说,这是一个巨大的机会。原来各自为战的状态,急需一个从底层协议统一的平台支撑。而目前能够实现这一点的,而且让大家信得过的,也只有华为一家。目前市面上的协议,还有米家杂货铺和 各个厂商各自为政,互联互通都成问题,这对大家购买
[杂谈]鸿蒙 OS 对开发人员带来的机遇和挑战-挑战篇上
鸿蒙 OS 2.0 正式发布了,对我们这些软件开发人员来说,它能带来那些机遇和挑战呢? 【挑战1】鸿蒙会不会成为一款优秀的操作系统?答案:会理由:就鸿蒙 OS 2.0 的情况来看,显然说它会成为一款优秀的操作系统是不需要质疑的东西。1、鸿蒙本身所占的体积要比 Android 小不少,相比 Android 手机,用户实际
【教程】对 TEvent 的一处增强
对于 TEvent 来说,如果是调用 WaitFor 等待超时时,如果程序退出时,事件仍在等待状态,就需要等待超时才能退出,造成程序退出时等待很长时间。要改进这一点,我们需要新版的 QWorker,它实现了一个 TAbortableEvent 的记录类型,然后支持取消操作。 TAbortableEvent 的增强在于:
[教程]如果在 Delphi /C++ Builder 中调试单元初始化时的错误
有时候,我们程序在进入 Main 函数入口前,就开始报错,比如 Acesss volation at XXX read at yyyy 一类的错误。这类错误一般是由于单元之间的引用关系和初始化顺序不一致造成的。比如单元 A 的初始化代码调用了单元 B 的函数,但单元 B 此时尚未初始化,所以其使用到的一些全局或静态变量
[教程]使用 TEdgeBrowser 组件
仅供有兴趣的朋友们参考,步骤有点小复杂。 1、下载 nuget。 2、在命令行执行:nuget install Microsoft.Web.WebView2 3、从微软官方下载 Webview 2 运行时。 4、在 nuget 目录下,搜索对应架构的 webview2loader.dll 并复制到你程序目录下,然后运行
[教程]QJSON 如何生成数组类型JSON数据
目标样式:[{“a”:123}, {“b”:123}, {“c”:123}] 首先,我们来看它的层级,第一层是一个数组,第二层为一个对象,所以,使用 QJSON 生成时,也就是下面的形式了: 最终生成的结果就如上面一样。如果遇到需要转义中文字符的场
[教程]VCL 中 TScrollBox 的一处 Bug 简单处理
TScrollBox 如果在设计时,滚动条的位置没有初始化到最开始的位置,或者不小心动了,可能就会存在特定的元素显示不出来的情况,此时,如果不考虑修改 VCL 源码,可以调用 ScrollInView 将最边缘的元素滚动到可视区,然后再设置对应滚动条的位置为 0 来解决。当然最根本的还是官方修复。
[分享]一种将 Delphi 组件属性信息保存到JSON的方法
此代码支持 Delphi 2007+,使用 QJSON 做为序列化的支持库。你可以自己改为使用其它的 JSON库(注:此文写法未完善,仅为示意)。 使用示例: 如上面的示例,由于写成了 class helper,所以保存到 Json 里,直接调用组件实例的 SaveToJson 就可以了,而从 Json 中恢复则直接调
[Bug] Delphi System.Net.HttpClient.Win 单元的一处Bug
[问题函数]System.Net.HttpClient.Win.ReadHeader[影响版本]自有这个单元开始到10.4,包括打完最新的 patch3。[问题描述]WinHttpQueryHeaders 返回 LSize 如果等于 2,则 SetLength 得到的结果是将 Result 设置对应的字符串缓冲区被设置
[杂谈]Delphi 10.4 初体验
一句话:体验就可以了,正式产品的迁移请静等下一个版本。
[译]RAD Studio 10.4 新变化:新的 TEdgeBrowser 组件
原文链接 新的 TEdgeBrowser 控件支持微软新的基于 Chromium 核心的 Edge 浏览器。当然了,要使用要求你机器上安装了 Edge 浏览器(Windows 7+)。老的 TWebBrowser 增加了一个 SelectedEngine 来选择使用老的 IE 核心还是新的 Edge 核心。
[译]RAD Studio 10.4 新变化:面向控件的 VCL 样式管理
原文链接 本文为简译 一句话概括:可以同时选中多个样式,然后设置控件的 StyleName 属性来使用某个样式。 例如: object Form2: TForm2 StyleName = ‘Sky’ object Panel1: TPanel StyleName = ‘Light’ object Button1: TB
[译]RAD Studio 10.4 新变化:GetIt 包管理器增强
原文地址 本文为简译 10.4 的 GetIt 包管理器在以下方面增强: 加入日期排序支持,可以在最前面查看最近的项目 对于安装的项目,在更新可用时显示一个标记 能够列出全部需要更新的已安装项目 支持 IDE 补丁安装