本文作者:icy

Delphi/C++Builder - 最新版本RAD Studio 13 Florence 初体验

icy 09-11 367 1条评论
Delphi/C++Builder - 最新版本RAD Studio 13 Florence 初体验摘要: Embarcadero公司推出的一款重要的集成开发环境(IDE)版本,它包含Delphi和C++Builder两款开发工具。这个版本引入了一些令人兴奋的新特性,特别是在Delphi...

Delphi/C++Builder - 最新版本RAD Studio 13 Florence 初体验

Embarcadero公司推出的一款重要的集成开发环境(IDE)版本,它包含Delphi和C++Builder两款开发工具。

这个版本引入了一些令人兴奋的新特性,特别是在Delphi语言方面。我会为你介绍其主要新特性,并提供一些Delphi新语法的代码示例。

下面是一个简要的版本特性概览表,帮助你快速了解:


特性类别主要新增功能支持平台
IDE增强原生的64位IDEWindows
Delphi语言三元运算符、NameOf intrinsic函数、{$PUSHOPT}/{$POPOPT}指令、is notnot in运算符、noreturn指令所有目标平台
C++支持升级至Clang 20,支持C++23标准Windows (现代工具链)
AI集成SmartCore AI组件包所有目标平台
Web开发WebBroker和WebStencils增强(会话管理、Apache/Nginx支持)所有目标平台
工具与质量GetIt包管理器支持版本控制、IDE搜索功能增强、质量改进所有目标平台


📚 Delphi新语法示例

RS13为Delphi语言引入了多项现代语言特性,让代码更简洁、表达力更强。

  三元运算符 (Ternary Operator)这是RS13中非常受欢迎的一个新特性,它允许你使用更简洁的写法来代替简单的if-else语句。

// 传统的 if-else 写法
if x > 5 then
  Result := '大于5'
else
  Result := '小于等于5';

// RS13 新的三元运算符写法
Result := if x > 5 then '大于5' else '小于等于5';

三元运算符非常适合在赋值语句或表达式中间进行条件判断。

NameOf  intrinsic函数
NameOf 函数可以在编译时获取变量、类型或成员的名称字符串,避免硬编码,方便重构。

var
  MyVariable: Integer;
begin
  WriteLn(NameOf(MyVariable)); // 输出: 'MyVariable'
  WriteLn(NameOf(Form1));      // 输出: 'Form1'
  WriteLn(NameOf(TButton));    // 输出: 'TButton'
end;

这在实现INotifyPropertyChanged接口或日志记录时特别有用。

is notnot in 运算符
引入了更符合直觉的逻辑运算符来补充原有的isin

// 检查对象不是某种类型
if myObj is not TButton then
  // ...

// 检查值不在集合内
if myChar not in ['a', 'b', 'c'] then
  // ...

但在RS13的上下文中仍然非常重要,尤其是在灵活的回调、事件处理等方面。

这些新运算符让代码读起来更自然。

匿名函数 (Anonymous Methods)
虽然匿名函数在之前的Delphi版本中就已存在

type
  TIntOperation = reference to function(x, y: Integer): Integer;

function Calculate(a, b: Integer; Operation: TIntOperation): Integer;
begin
  Result := Operation(a, b);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Sum: Integer;
begin
  // 直接传入一个匿名函数实现
  Sum := Calculate(10, 20,
    function(x, y: Integer): Integer
    begin
      Result := x + y;
    end);
  ShowMessage(Sum.ToString);
end;

匿名函数可以捕获外部变量(闭包),延长局部变量的生命周期

非常强大。

{$PUSHOPT}{$POPOPT} 编译器指令
这组指令允许你临时更改编译器选项,并在之后恢复之前的设置,提供了更灵活的控制。

{$PUSHOPT R+} // 将溢出检查选项压栈,并开启溢出检查
// 这里的一段代码需要严格的溢出检查
CodeThatNeedsOverflowChecking;
{$POPOPT}     // 恢复之前(可能是关闭)的溢出检查设置

noreturn 指令
用于告知编译器某个过程或函数不会返回(例如,总是抛出异常),有助于消除不必要的编译器警告。

procedure CriticalError(const Msg: string); noreturn;
begin
  raise Exception.Create(Msg);
end;

noreturn{$PUSHOPT}/{$POPOPT} 则更多用于特定的高级或底层编程场景。

还需要更多的使用才能更好地理解 RAD Studio 13 Florence 和 Delphi 的新语法。

兼容性:在将旧项目升级到RS13时,虽然新编译器通常具有良好的向后兼容性,但仍建议充分测试。新的严格检查选项(如通过{$PUSHOPT}启用)可能会暴露原有代码中的潜在问题。

适用场景三元运算符NameOfis not/not in等新特性可以广泛用于日常编码,让代码更简洁。匿名函数非常适合用于回调、事件处理器(尤其是一次性的)、线程同步、延迟执行等场景


目前安装版可以可以使用 KeyPatch工具弄一下。

等以后有Delphi的便携版会持续更新在下方

现在不能调速了,大文件请使用客户端下载。

RADStudio_11_3_28_12819a.iso
类型:压缩文件|已下载:14|下载方式:免费下载
立即下载
RADStudio-11.3-KeyPatch.exe
类型:压缩文件|已下载:13|下载方式:免费下载
立即下载
Embarcadero.Delphi.13.0.v37.0.57242.3601.Lite.v19.0.7z
类型:压缩文件|已下载:5|下载方式:免费下载
立即下载
文章版权及转载声明

作者:icy本文地址:https://zelig.cn/2025/09/126.html发布于 09-11
文章转载或复制请以超链接形式并注明出处软角落-SoftNook

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

验证码

评论列表 (有 1 条评论,367人围观)参与讨论
网友昵称:访客
访客 游客 沙发
09-11 回复
文章不错,写的很好!