2024年9月12日美国Embarcadero公司正式发布RAD Studio Delphi/C++ Builder 12.2 雅典

Embarcadero 非常高兴地宣布,从今天开始,RAD Studio 12.2 Athens 以及 Delphi 12.2 和 C++Builder 12.2 可供客户使用。RAD Studio 12.2 Athens 版本提供了我们在 IDE 中的第一次生成式 AI 集成、用于 Web 开发的新模板库、基于 C++ Win64 Clang 的新编译器和工具链的重要功能增强、构建为 64 位应用程序的新 Delphi 编译器等等。在这篇博文中,我们将重点介绍此版本的主要增强功能,并提供包含更多信息的链接。

目录

  • RAD STUDIO 12.2 的主要新功能
    • 现代化 C++ 编译器和工具链的运行时包、编译速度等
    • Delphi Windows 编译器的 64 位版本
    • Smart CodeInsight:AI 驱动的编码
    • 编辑器增强功能:焦点模式和滚动条注释
    • WebStencils 模板库
    • C++Builder Visual Assist 集成
    • 改进的 Mobile Development 和外部库链接
  • RAD STUDIO 12.2 的质量改进
    • 调试器质量
    • Delphi LSP
    • Delphi RTL、VCL 和 FireMonkey 质量
    • RAD 服务器改进
    • 整体质量
  • 整装待发
    • 精彩的发布

RAD STUDIO 12.2 的主要新功能

现代化 C++ 编译器和工具链的运行时包、编译速度等

继 RAD Studio 12.1 中基于 Clang 的 Win64 基于 Clang 的 C++ 编译器发布后,新的更新为新的 C++ 工具链添加了重要功能,包括运行时包的消费和生产、对所有 RAD Studio 组件包的支持、并行 CPU 饱和的批量编译(支持 ––jobs 参数),提供令人难以置信的编译性能,并广泛关注编译器和 RTL 库的质量。与之前的 12 版本一样,较旧的 C++ Win64 工具链仍与新工具链一起提供。

以下是在新的 C++ 工具链中启用运行时包的方法:

Delphi Windows 编译器的 64 位版本

RAD Studio 12.2 包括 Delphi Win32 和 Win64 编译器的 64 位二进制版本,考虑到新编译器的 64 位内存空间,它能够构建非常大的应用程序作为单个可执行文件。这些新编译器当前可从命令行使用,并在使用外部编译时从 IDE 获得。虽然命令行编译器的 32 位版本(针对 Win32、Win64 和其他平台)在所有付费版本中仍然可用,但新的 Delphi 编译器的 64 位版本只包含在 Enterprise 和 Architects 版本中,因为主要集中在具有非常大代码库的客户。

以下是在 Project Options 对话框中启用外部 64 位 Delphi 编译器的方法:

值得注意的是,新的 C++ Clang 编译器自 RAD Studio 12.0 发布以来一直是 64 位二进制。

Smart CodeInsight:AI 驱动的编码

利用 AI LLM 进行编码越来越受欢迎,这些工具的质量也越来越好。因此,RAD Studio 12.2 引入了 AI 插件的开放式架构,为三种在线解决方案(OpenAI、Google 的 Gemini 和 Anthropic 的 Claude)和一种离线解决方案 (Ollama) 提供即用型支持。在这里,您可以在 Tools Options (工具选项) 对话框中看到新的 Smart CodeInsight 配置窗格:

此体系结构提供了多个目标:所有内容都是可选的,默认情况下是禁用的;我们提供多个提供商,并让您选择要启用的一个或多个提供商;我们提供了一个本地安装的离线解决方案,以实现最大的隐私。这与其他 IDE 提供的功能不同,它会将您推向单一的专有解决方案或代理到不受您控制的后端之一。借助 Smart CodeInsight,您可以决定是否以及如何使用 AI,甚至可以为您的首选解决方案创建其他插件,只要它提供公共 REST API 来调用。

RAD Studio IDE 以两种不同的方式呈现新的 AI 工具。首先,有一个通用的 AI 聊天窗格,你可以停靠:

其次,有一个新的编辑器菜单,其中包含多个命令,您可以对所选代码发出:

编辑器增强功能:焦点模式和滚动条注释

有时,您正在编写代码,并且不想被许多 IDE 窗格和功能分散注意力。新的 RAD Studio 焦点模式实现了这一点:它只让 IDE 与编辑器在一起,因此您可以避免中断您的思路:

另一个非常有用的功能是新的滚动条注释:编辑器滚动条一目了然地显示已修改、有书签、有错误或警告等的代码部分,正如您在这里看到的那样:

我们还将质量改进重点放在最近推出的 Split View 以及 IDE 工具栏和 HighDPI 上。

WebStencils 模板库

RAD Studio 版本 12.2 引入了 WebStencils,这是一种基于服务器端脚本的 HTML 文件与 WebBroker 和 RAD 服务器技术的集成和处理。这个灵活的功能使您能够基于任何 JavaScript 库开发现代网站,这些库由 RAD Studio 服务器端应用程序提取和处理的数据提供支持。它让您可以自由创建适合您独特需求的网站。

WebStencils 的主要目标是通过采用 Web 技术(WebBroker、DataSnap、RAD Server)和提供服务器端脚本来帮助导航网站。例如,您可以使用 WebStencils 通过标准工具生成 HTML 页面并采用任何 CSS 和 JavaScript 库,同时保留从 Delphi 或 C++Builder 应用程序生成的页面添加数据的能力,例如数据库查询的结果。

在这里,您可以看到用于将对象(在本例中为 ClientDataSet)传递给脚本的示例代码,并为其指定特定名称 “dataset”:

下面是匹配的示例脚本,该脚本循环访问数据集的每条记录,并在 HTML 代码中添加一些字段值:

这将生成如下所示的网页:

此外,WebStencils 可以成为 HTMX 作为 Web 开发解决方案的良好基础。HTMX 页面受益于服务器端代码生成,并挂接到 REST 服务器以进行内容更新。Delphi Web 技术以非常高的质量水平提供页面生成和 REST API。

C++Builder Visual Assist 集成

Visual Assist 集成已扩展为新功能,包括三个新的重构:Introduce Variable、Create From Usage 和 Extract Method。此外,还有显著的质量和稳定性改进。以下是 Introduce Variable 重构的对话框:

这是 Extract 方法 1 的对话框:

改进的 Mobile Development 和外部库链接

RAD Studio 12.2 对 iOS 和 Android 的 Delphi 移动开发进行了重大改进。为了更好地支持 Apple 平台,我们已将链接器更新到最新版本,以便现在可以链接用 Xcode 编写的 iOS 静态库,例如 Firebase iOS SDK。

在 Android 支持方面,为了让我们的客户更好地控制打包和部署,我们在 Android 项目选项中添加了 Compress Dex files (压缩 Dex 文件) 和 Compress native library files in the toolchain (压缩本机库文件) 选项。此外,对于 Android,现在可以在 Project Options 对话框中配置 Android 清单文件的 targetSdkVersion。我们还添加了导入 Android 库(“.aar”文件)的功能,例如,适用于适用于 Android 的 Facebook SDK 和 Firebase Analytics。

RAD STUDIO 12.2 的质量改进

调试器质量

我们对各种 RAD Studio 调试器进行了一些改进。最值得注意的是,Delphi 调试器现在可以正确处理具有相同名称的重复内联变量,如下所示:

我们还改进了调试器错误处理和远程调试器通信超时。

Delphi LSP

为 CodeInsight 提供支持的 Delphi Language Serve Protocol 引擎已经扩展了核心基础,并专注于更好地解析和导航符号,包括类接口中的符号,包括字段、局部常量和变量以及前向类型声明。我们解决了许多请求,包括一些与 Delphi 多行字符串相关的请求。此外,RAD Studio 12.2 还包括 DelphiLSP 引擎的 64 位版本,它为大型代码库提供了更好的支持,没有内存限制。与 Delphi 编译器的 64 位版本一样,此功能仅在 Enterprise 和 Architects 版本中可用。

Delphi RTL、VCL 和 FireMonkey 质量

RAD Studio 12.2 对核心 Delphi RTL 以及 VCL 和 FireMonkey UI 库进行了数十项改进。值得一提的是 RTL 的新 TParallelArray 和 TOrderedDictionary 类;VCL 质量解决了帧缩放、FormsTabBar、样式问题和高 DPI 问题;FMX 为许多领域提供密集的质量工作,并额外关注移动设备上的编辑控制,

RAD 服务器改进

除了 WebStencils 集成(将 Web 开发添加到 RAD Server 的 Web 服务开发功能中)之外,在 12.2 中,RAD Server 还通过自定义元数据、API 过滤、YAML 格式和 Delphi 多行字符串文字扩展了 Swagger 文档支持。

整体质量

在 RAD Studio 12.2 中,我们对 88 个支持工单、来自客户的 35o 个质量门户工单(登录旧门户或新门户)和 28 个客户功能请求实施了质量改进。

整装待发

RAD Studio、Delphi 和 C++Builder 12.2 的产品试用版现已推出,更新的产品版本已在网上商店中提供。更新订阅的客户现在可以使用其现有许可证下载和安装 RAD Studio、Delphi 和 C++Builder 12.2,并将收到一封电子邮件,宣布新版本的可用性。可在https://www.z-shi.net/ 下载:Z-Gantt战石智慧时间管理进度计划甘特图横道图软件

有关更多信息,您可以查看以下链接:

  • RAD Studio 12.2 的 Embarcadero Web Site 页面
  • DocWiki 中更详细的 What's New 页面
  • DocWiki 中已修复的公开报告的错误列表
  • RAD Studio 功能矩阵 PDF

精彩的发布

我们对团队为 RAD Studio 12.2 Athens 所做的工作非常满意,我们相信您也会同样喜欢使用这个新版本的 RAD Studio、C++ Builder 和 Delphi。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1538598.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; class Solution {public boolean canPartition(int[] nums) {int n nums.length;if (n < 2) {return false;}int sum 0, maxNum 0;for (int num : nums) {sum num;maxNum Math.max(maxNum, num);}if (sum % 2 ! 0) {return false;}…

Linux驱动开发 ——架构体系

只读存储器&#xff08;ROM&#xff09; 1.作用 这是一种非易失性存储器&#xff0c;用于永久存储数据和程序。与随机存取存储器&#xff08;RAM&#xff09;不同&#xff0c;ROM中的数据在断电后不会丢失&#xff0c;通常用于存储固件和系统启动程序。它的内容在制造时或通过…

计算机的错误计算(九十七)

摘要 讨论 的计算精度问题。 由计算机的错误计算&#xff08;九十六&#xff09;知&#xff0c;IEEE754-2019标准中含有 运算。 另外&#xff0c;似乎没有语言直接编程实现内置了该运算。 例1. 已知 x-0.9999999999076 . 计算 不妨用 Python的 math库与 numpy库中的 …

PC端远程连接交换机(思科模拟器)

建立远程连接交换机&#xff08;简单版 新手放心食&#xff09; **任务驱动&#xff1a;**实现PC端可以远程登陆交换机&#xff0c;交换机型号是2950-24&#xff0c;拓扑图如下&#xff1a; 一、配置交换机 代码块如下&#xff1a; Switch>enable Switch#config terminal…

html+css+js网页设计 旅游 穷游10个页面

htmlcssjs网页设计 旅游 穷游10个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xff…

Python编码系列—Python桥接模式:连接抽象与实现的桥梁

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

【常用集合】深入浅出Map集合

HashMap HashMap 主要用来存放键值对&#xff0c;它基于哈希表的 Map 接口实现&#xff0c;是常用的 Java 集合之一&#xff0c;是非线程安全的。 HashMap 可以存储 null 的 key 和 value&#xff0c;但 null 作为键只能有一个&#xff0c;null 作为值可以有多个。 底层实现…

C# 找到给定点集的简单闭合路径(Find Simple Closed Path for a given set of points)

给定一组点&#xff0c;将这些点连接起来而不相交 例子&#xff1a; 输入&#xff1a;points[] {(0, 3), (1, 1), (2, 2), (4, 4), (0, 0), (1, 2), (3, 1}, {3, 3}}; 输出&#xff1a;按以下顺序连接点将 不造成任何交叉 {(0, 0), (3, …

前端分段式渲染较长文章

实现思路&#xff1a; 1. 后端返回整篇文章。 2. JavaScript 分段处理&#xff1a;将文章按一定的字符或段落长度分割&#xff0c;然后逐步将这些段落追加到页面上。 3. 定时器或递归调用&#xff1a;使用 setInterval 或 setTimeout 来控制段落的逐步渲染。 代码实现示例 …

Linux(6)--CentOS目录

文章目录 1. 根目录2. cd目录切换命令3. CentOS目录介绍4. pwd命令介绍5. ls命令介绍5.1 ls5.2 ls -a5.3 ls -l 1. 根目录 Windows电脑的根目录是计算机(我的电脑)&#xff0c;然后C盘、D盘。 Linux系统的根目录是/&#xff0c;我们可以使用cd /进入根目录&#xff0c;然后使…

Java访问一口气讲完!o(*≧▽≦)ツ┏━┓

Java this关键字 Java面向对象设计 - Java this关键字 什么是 this&#xff1f; Java有一个名为 this 的关键字。它是对类的当前实例的引用。 它只能在实例的上下文中使用。 以下代码显示如何使用this关键字。 public class Main {int varA 1;int varB varA; // Assign …

深入探索Docker核心原理:从Libcontainer到runC的演化与实现

随着容器技术的发展&#xff0c;Docker从早期的Libcontainer逐步演化到runC&#xff0c;推动了容器运行时的标准化进程。Libcontainer是Docker容器的核心管理工具&#xff0c;而runC则在此基础上发展成为符合OCI&#xff08;Open Container Initiative&#xff09;标准的轻量级…

8.2Roberts算子边缘检测

基本概念 Roberts算子是一种简单的一阶导数边缘检测算子&#xff0c;它通过计算图像在水平和垂直方向上的梯度来检测边缘。在OpenCV中&#xff0c;Roberts算子可以通过手动应用卷积核来实现。Roberts算子是一组2x2的小型滤波器&#xff0c;用于检测图像中的垂直和水平边缘。 …

GEE 案例:利用sentinel-2数据计算的NDVI指数对比植被退化情况

目录 简介 NDVI指数 数据 函数 ui.Chart.image.series(imageCollection, region, reducer, scale, xProperty) Arguments: Returns: ui.Chart 代码 结果 简介 利用sentinel-2数据计算的NDVI指数对比植被退化情况 NDVI指数 NDVI&#xff08;Normalized Difference Ve…

遥感图像目标检测数据集-DOTA数据集

DOTA数据集(v1.0版本和v1.5版本)&#xff0c;训练集1411张&#xff0c;验证集458张&#xff0c;测试集若干&#xff0c;共16种类别。数据集图片大小不一&#xff0c;需要进行裁剪&#xff0c;可设置裁剪重叠大小以及裁剪图片大小。此处按照默认参数裁剪&#xff0c;重叠200像素…

二极管选型

稳压二极管&#xff08;齐纳二极管&#xff09; 肖特基二极管 发光二极管 TVS二极管

记录一下ElementUI 3 在浏览器导入, table表格显示问题

当时问题忘了截图, 现在通过文字记录一下问题 我直接在html了引入 vue3 和 ElementUI 3 , 使用了table组件, 但是表格的td 总是只显示一列, 问题是我的 el-table-column 标签 没有结束标签 , 在vue文件模块化里写不需要结束标签, 在浏览器里无法直接识别出来, 所以他是渲染了第…

基于yolov8的肉鸡健康状态检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的肉鸡健康状态检测系统是一个先进的目标检测应用&#xff0c;旨在通过图像分析实现对肉鸡健康状态的快速、准确评估。该系统利用了YOLOv8模型的尖端技术&#xff0c;该模型由Ultralytics公司开发&#xff0c;具有卓越的检测精度和速度。 YOLOv8模型采…

C++---类与对象一

类的定义 class className{//成员字段//成员函数 };class定义类的关键字&#xff0c;className是自己决定的类名&#xff0c;{ } 为类的主体&#xff0c;花括号里是类的内容。类的内容大致分为类的成员属性&#xff08;变量&#xff09;和类的成员函数。注意定义类后面需要跟;…

理解人工智能、机器学习与深度学习的关系

1. 人工智能&#xff08;AI&#xff09;宏观的智能概念 人工智能&#xff08;Artificial Intelligence, AI&#xff09;是一个广泛的领域&#xff0c;涉及设计和开发能够表现出智能行为的计算机系统。这些系统可以模拟或执行类似于人类的认知功能&#xff0c;如学习、推理、决…