美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens

Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 C++Builder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。
目录
- 主要新功能
- C++ 的奇妙之处
- Delphi 的一些不错的补充
- FireMonkey 和 Skia 作为新基金会
- 采用 MDI 和选项卡式 UI 架构的 VCL 现代化
- Delphi RTL、数据和其他领域的新功能
- RAD Studio IDE 改进
- RAD 服务器和 InterBase
- 质量,质量,质量
- 准备好出发
主要新功能
这是 RAD Studio 12 中引入的关键功能的摘要。以下部分提供了更多详细信息,但最好从摘要开始:
- Visual Assist 集成在 C++Builder 的 IDE 中,为 C++ 语言提供一流的代码完成、代码导航和重命名重构
- 针对 Win64 的基于 CLANG 的 C++ 编译器的显着更新预览,支持最新的 C++ 标准语言功能,并提供与外部库和 C++ 代码的更好集成
- Delphi 语言添加内容,包括多行字符串文字,以满足一些相关的客户请求
- FireMonkey 中的 Skia 支持,通过采用 FireMonkey 的新基础,在所有目标平台上渲染图形和 UI 控件时提供更高的性能和质量
- 重新设计的 MDI 和新的 VCL 选项卡式 UI 架构可帮助我们的客户实现现有应用程序的现代化,以最少的努力为现有程序添加对 HighDPI 和样式的支持
- 新的 FireDAC 示例查询 (QBE) 组件可简化数据过滤,新的 Delphi JSON 向导可将流行 JSON 格式的数据映射添加到对象,就像我们对 XML 所做的那样
- 许多 IDE 生产力和质量改进,使 RAD Studio 能够更轻松、更快速地执行日常任务
- 支持 RAD Server 中的智能 ID,使客户托管的 REST API 更加强大和灵活,同时保持 RAD Server 的易用性

C++ 的奇妙之处
此版本的一个重要重点是 C++Builder 和我们的 C++ 工具链(也可在 RAD Studio 中使用)。该团队一直专注于两项关键的 C++ 改进:现代化我们的 C++ 编译器和工具链,通过代码完成提供惊人的生产力,以及通过集成 Visual Assist 添加重构和导航。
C++ 工具链升级是对我们 C++ 支持的一次惊人的改革。它不仅包括新版本的 Clang,还包括 C 和 C++ 运行时库以及 STL(C++ 标准模板库)以及链接器和调试器。这项巨大努力的目标是提供现代 C++ 标准,能够运行您在最近的库和项目中找到的 C++ 代码,轻松使用第三方库,利用现代安全编码标准,拥有更高性能的应用程序和出色的调试。它还旨在直接改进链接和 STL 等领域,并转向 Windows 平台标准,例如使用 COFF 和 PDB 对象和调试格式,从而可能允许您与其他工具更广泛的兼容性。您可以在此预览博客文章中阅读有关此功能的更多信息: [Yukon Beta Blog]: Win64 Clang Toolchains in RAD Studio 12
在 12.0 中,我们发布了这个新 C++ 工具链的预览版,可作为命令行编译器使用。我们将继续致力于这个新的 C++ 工具链的 IDE 集成,与现有的 C++ 编译器并行,以及与 RAD Studio 中的 Delphi 库的集成,包括 VCL 和 FireMonkey UX 库。我们计划在这些更新可用时向订阅的客户提供这些更新。
C++Builder 12.0 中的另一项重大创新来自于 Visual Assist 技术的集成,以提供更好的代码洞察力,包括代码完成、代码导航和重构。这些是帮助完成常见开发任务的关键生产力工具,从编码时经常调用的代码完成,到允许开发人员轻松找到代码的相关部分而不是手动搜索代码库的导航,再到帮助代码组织和安全的重构。我们将在 RAD Studio 中提供 VA 功能的重要初始子集,包括查找符号和引用、显示项目大纲、从实现导航到声明并返回,以及重命名重构。您可以在https://blogs.embarcadero.com/yukon-beta-blog-c-and-visual-assist-in-rad-studio-12-0/ 阅读有关 C++Builder 中 VA 的这篇预告博客文章

Delphi 的一些不错的补充
在 Delphi 编译器方面,12.0 添加了一些小但很好的扩展,包括对长字符串文字、多行字符串文字的支持,受三引号限制,以允许更轻松地嵌入 SQL、HTML、JSON、XML 和类似的多行文本。应用程序源代码。您可以在此预览博客文章中阅读有关此功能的更多信息: https: //blogs.embarcadero.com/yukon-beta-blog-delphi-language-modernizing-string-literals/。Delphi 12 编译器还为 NativeInt 提供弱类型别名定义,以增强 Win32/Win64 兼容性、更好地支持 NaN 浮点数比较以及在所有平台上禁用浮点异常。

在平台支持方面,Delphi 12.0 提供了对 Android API 级别 33 的兼容性,这是 Google 对 Play 商店应用程序提交的要求。
FireMonkey 和 Skia 作为新基金会
就 UI 库而言,RAD Studio 12.0 对于 Delphi 和 C++Builder 而言最重要的一组改进来自 FireMonkey 中非常流行的跨平台渲染引擎 Skia 的集成。这是通过集成 Skia4Delphi 开源项目来完成的,同时还通过 Vulkan 支持、Skia 着色语言的效果和滤镜支持、WebP 编码器、打印机支持以及打印为 PDF 来扩展它。
RAD Studio Skia 支持包括直接 API、特定 UI 控件(TSkAnimatedImage、TSkLabel、TSkPaintBox 和 TSkSvg)以及 FireMonkey UI 的自动映射通过 Skia 控制 UI 渲染。总的来说,Skia 提高了渲染质量和性能。请注意,VCL 窗口库中也提供了相同的 Skia UI 控件。

除了为库的未来提供新的坚实基础的 Skia 支持之外,我们还改进了 Android 支持,以匹配许多最新的平台增强功能,添加了分屏支持,以允许 FireMonkey 应用程序在并排窗格中工作iOS 和 Android,并广泛重新设计了单行 TEdit 和多行 TMemo 控件的文本输入功能。
对于 FireMonkey 开发,IDE 的另一个重大改进是引入了一个向导,可以根据 Apple 和 Google 的要求,从单个 SVG 图像开始,在所有分辨率下生成图标和启动屏幕,并支持 Android 的自适应图标,例如您可以阅读 [Yukon Beta Blog] Multi Device Icon Generator

采用 MDI 和选项卡式 UI 架构的 VCL 现代化
我们一直在进行 VCL 现代化工作,以帮助我们的客户迁移他们现有的应用程序(通常非常大并且在他们的目标行业中已经成熟)。12.0 的重点是保持老式但仍然流行的 MDI(Windows 多文档界面)模型。在新版本中,客户将能够采用对 MDI 应用程序的完整 HighDPI 支持,并采用 VCL 样式。我们将允许我们的客户绕过由于 Microsoft 近年来一直忽视对 MDI 的支持而导致的平台问题。

此外,RAD Studio 12.0 引入了一种新的基于选项卡的 UI(如 Google Chrome 和许多其他流行应用程序中的 UI),作为从 MDI 的轻松迁移或全新的模型,并带有新的 TFormTabsBar 控件。VCL 库改进了高 DPI 屏幕的蒲团管理。
作为 VCL 改进的一部分,新版本引入了许多新设计器来帮助简化工作:有一个新的字符串列表编辑器、一个多行字符串编辑器以及按钮、单选按钮组和面板的快速配置对话框。其中一些方便的工具最初是 KSVC(Konopka Signature VCL Controls)的一部分,现在任何人都可以使用,甚至无需安装此附加控制包。

除了核心 RTL 定义之外,我们还创建了一组新单元,将完整的 Windows API 标头转换为 Object Pascal,以便 Delphi 开发人员更轻松地调用我们未在组件库中公开的任何 Windows 平台 API。该API转换包括311个Delphi头文件和41MB代码,涵盖了微软提供的整个平台API。
此外,我们还改进了 Edge 浏览器与新界面、属性和事件的集成,以匹配自上次发布以来对平台 WebView 2 控件的改进。VCL 的进一步改进包括极其灵活的 TControl 枚举器、桌面 Windows 管理器 (DWM) 增强以及对双缓冲模式的更改。
Delphi RTL、数据和其他领域的新功能
其他 Delphi 核心运行时库有许多改进,C++ Builder 也利用了这些改进。对于我们的旗舰数据库访问库 FireDAC,我们添加了对经典 QBE 模式(按示例查询)的支持,该模式允许开发用于输入简单数据过滤条件的 UI。
此外,FireDAC 组件还提供了一些附加功能,通过限制特定查询控件的 SQL 命令类型、禁止多个命令以及阻止进一步的 SQL 更改,帮助开发人员提高应用程序安全性。如果与其他行业最佳实践一起使用,这些改进使开发人员能够提高应用程序安全性。
RAD Studio 12.0还引入了一个新的JSON映射向导,它可以生成与JSON数据结构匹配的类以及正确的读写代码以读取一组对象中的JSON并将其流式传输到新文件。

RAD Studio IDE 改进
IDE 中有许多相关的更改。
第一个是功能安装程序的新用户体验,用于初始产品安装或稍后添加功能和平台。该对话框在行为和 UI 上进行了完全重新设计,使用现代 VCL 控件,改善了新用户对产品的第一印象。它更易于使用,因为所有主要安装选项(包括额外的插件)都在一页上,这与以前的多步骤设计不同。如果出现安装问题,新对话框还提供更好的错误信息。

IDE 现在在许多辅助窗口中都具有语法突出显示功能,例如调用堆栈和结构视图。源代码搜索、导航工具栏的工作方式、多个编辑窗口的使用以及许多其他小调整也得到了改进。
除了为 C++Builder 引入 Visual Assist 集成之外,我们还进一步改进了用于 Code Insight 的 DelphiLSP 支持。例如,代码完成现在包括语言关键字,代码模板在完成过程中显示在上下文正确的代码区域中,并且更好地支持泛型和完成数组或数组类型。
最后,RAD Studio 进一步扩展了代码编辑器的新 ToolsAPI,让客户和第三方供应商为我们的 IDE 创建更灵活的插件。
RAD 服务器和 InterBase
我们的 REST 服务器 API 托管平台 RAD Server 有一些显着的改进。最重要的变化是能够轻松支持智能 ID 模型,使用标准库为服务器公开的资源定义更好的标识符。RAD Server 还提供更好的性能、数据分页改进、更好的会话身份验证和整体质量。
最后,新版本的RAD Studio包括开发者版和最近发布的InterBase 2020 Update 5的嵌入式版本。
质量,质量,质量
除了上面强调的功能之外,该版本还专注于多个子系统的质量工作,从 IDE 开始,还包括 Delphi RTL 库、VCL UI 库、FireMonkey 跨平台库、FireDAC 和其他数据访问层、HTTP 客户端和服务器组件以及 RAD 服务器。
在 RAD Studio 12 中,我们修复了客户在 Quality Portal (quality.embarcadero.com) 上报告的 1,027 个问题,解决了 877 个公共错误报告并实现了 150 个客户对新功能的请求。Z-Gantt时间管理进度计划甘特图软件
准备好出发
RAD Studio、Delphi 和 C++Builder 12 的产品试用版现已推出,更新的产品版本已在在线商店中上线。订阅更新的客户今天可以使用现有许可证下载并安装 RAD Studio 12,并将收到一封电子邮件,宣布新版本可用。可在客户门户网站https://my.embarcadero.com中进行下载。
欲了解更多信息,您可以查看以下链接:
- RAD Studio的 Embarcadero 网站页面
- DocWiki 中更详细的 “新增功能”页面
- 已修复公开报告的错误列表(也在 DocWiki 中)
- RAD Studio 功能矩阵 PDF
- 演示存储库可以在GitHub上找到
我们对我们的团队为 RAD Studio 12 Athens 所做的工作感到非常满意,并且我们确信您也会同样喜欢使用这个新版本的 RAD Studio、C++Builder 和 Delphi。
相关文章:
美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens
Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 CBuilder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。 目录 主要新功能 C 的奇妙之处Delphi 的一些不错的补充FireMonkey 和 Skia 作为新基金会采用 MD…...
树莓派4B的测试记录(CPU、FFMPEG)
本文是用来记录树莓派 4B 的一些测试记录。 温度 下面记录中的风扇和大风扇是这样的: 为什么要用大风扇呢?因为小风扇在外壳上,气流通过外壳的珊格会有啸叫,声音不大但是很烦人,大风扇没这个问题,并且同样…...
物联网AI MicroPython学习之语法 二进制与ASCII转换
学物联网,来万物简单IoT物联网!! ubinascii 介绍 ubinascii模块实现了二进制数据与各种ASCII编码之间的转换。 接口说明 a2b_base64 - 解码base64编码的数据 函数原型:ubinascii.a2b_base64(data)注意事项: 在解码…...
学之思项目的搭建部署 打jar包失败的解决方法
学之思系统介绍部署java环境安装maven安装node.js前端打包工具命令npmGit命令获取源代码安装配置mysql前端打包打包jar包服务上线!!!打jar包失败的解决方法 学之思系统介绍 学之思开源考试系统是一款 java vue 的前后端不分离的考试系统。主要优点是开发、部署简单快捷、界面…...
[100天算法】-定长子串中元音的最大数目(day 67)
题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。示例 1:输入:s "abciiidef", k 3 输出:3 解释…...
Elastic Observability 8.11:ES|QL、APM 中的通用分析和增强的 SLOs
作者:Tom Grabowski, Katrin Freihofner, Israel Ogbole Elastic Observability 8.11 引入了 ES|QL for Observability(技术预览版)、Universal ProfilingTM 和 Elastic APM 集成,以及针对 Elastic Observability 的新 SLO &#…...
TexGen简单模型对应inp文件简单梳理-2
模型 默认最简单的编织复材,编辑材料属性时发现基体属性设置正常,各向同性材料,但是纱线的材料属性却没有弹性性能的设置。 导出inp文件后,导入ABAQUS中其实可以看到有两种材料,纱线也是有属性的。 ABAQUS中修改属性的…...
VUE获取当前日期的周日和周六
<template><div><div click"handleLast()">上一周</div><div click"handleNext()">下一周</div><el-calendarref"monChild"v-model"value":first-day-of-week"7":range"[sta…...
K8S篇之k8s containerd模式fail to pull image certificate signed by unknown authority
"k8s containerd模式fail to pull image certificate signed by unknown authority"的问题 解决方案:您有两个选择:配置证书或禁用证书验证。 配置证书:您可以为 containerd 配置证书,使其信任由未知机构签名的证书。 具…...
算法进阶指南图论 最优贸易
最优贸易 题目描述 C C C 国有 n n n 个大城市和 m m m 条道路,每条道路连接这 n n n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m m m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的…...
【Android】Debug时禁用主线程ANR限制
ANR全称Application Not Response,指主线程超过5s无响应,应用会自动退出 由于这个线程,如果我们给主线程加了断点,就会触发ANR,导致调试时应用退出 这样调试起来会非常麻烦,其实对于Debug应用,…...
P6入门:项目初始化1-项目详情介绍
前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…...
进行 “最佳价格查询器” 的开发
前置条件 public class Shop {private final String name;private final Random random;public Shop(String name) {this.name name;random new Random(name.charAt(0) * name.charAt(1) * name.charAt(2));}public double getPrice(String product) {return calculatePrice…...
Brain Teaser概率类 - 三局两胜制
问题 三局两胜制比赛,两局结束还是三局结束的概率大? 解答 假设每局比赛的结果是独立同分布的,且遵循伯努利分布,其中一方的胜率为p,另一方为1-p. 则两局结束的概率是 p 2 ( 1 − p ) 2 ≥ 0.5 p^2 (1-p)^2 \geq …...
在现实生活中传感器GV-H130/GV-21的使用
今天,收获了传感器GV-H130/GV-21,调试探头的用法,下面就来看看吧!如有不妥欢迎指正!!!! 目录 传感器GV-H130/GV-21外观 传感器调试探头 探头与必要准备工作 传感器数值更改调试 …...
海康Visionmaster-全局脚本:通过通讯触发快速匹配 模块换型的方法
如何实现根据通讯信号切换快速匹配的模型文件并触发流程执行? 1.动态切换模板需在全局脚本中调用相关接口实现,可以在全局脚本的通讯数据接收回调中实现代码逻辑,代码如下。 C# using System; using VM.GlobalScript.Methods; using System.…...
什么是闭包
闭包是指函数在定义时可以访问其词法作用域的能力,即使函数在定义之后被传递到了其他地方执行。它包含了两个主要的特性:函数内部可以访问外部函数作用域中的变量,而这些变量在函数执行完毕后依然保持在内存中。 具体来说,闭包的…...
sql6(Leetcode1387使用唯一标识码替换员工ID)
1112-2 代码: INNER JOIN 如果表中有至少一个匹配,则返回行 LEFT JOIN 即使右表中没有匹配,也从左表返回所有的行(LEFT为基准 RIGHT JOIN 即使左表中没有匹配,也从右表返回所有的行 # Write your MySQL query st…...
qt-C++笔记之Qt中的时间与定时器
qt-C笔记之Qt中的时间与定时器 code review! 文章目录 qt-C笔记之Qt中的时间与定时器一.Qt中的日期时间数据1.1.QTime:获取当前时间1.2.QDate:获取当前日期1.3.QDateTime:获取当前日期和时间1.4.QTime类详解1.5.QDate类详解1.6..QDateTime类…...
【C++】复杂的多继承及其缺陷(菱形继承)
本篇要分享的内容是C中多继承的缺陷:菱形继承。 以下为本篇目录 目录 1.多继承的缺陷与解决方法 2.虚继承的底层原理 3.虚继承底层原理的设计原因 1.多继承的缺陷与解决方法 首先观察下面的图片判断它是否为多继承 这实际上是一个单继承,单继承的特…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
