奥非域

【转】RAD Studio 11 更新说明

注:本文为简译,未翻译所有内容。

【本译文转自 http://blog.qdac.cc/?p=5375

原文链接:官方文档 官方ISO下载 Bug修复列表

IDE

  • 高DPI支持
    • IDE 所有窗口都支持高 DPI 了,解决了高 DPI 缩放造成的模糊问题,有高分显示器,而且使用高 DPI 的开发者值得一试
    • VCL 窗口设计器支持定制 DPI(自动/96/自定义)缩放,FMX 本来就支持高 DPI 缩放
    • Open Tool 支持高DPI
  • 欢迎页面改成 VCL 实现了,不是以前的网页了
  • VCL 样式支持设计期直接预览效果
  • 优化内容
    • 选项对话框加载速度提升
    • FMX设计提供一些额外的辅助增强,如对齐增强等等
    • 代码编辑器默认字体换了
  • Delphi LSP 支持Visual Studio,并且移除了经典代码完成模式,现在只能使用 LSP了
  • 构建事件功能增加了警告信息,如果你设置了构建事件,不论你当前配置是否使用,都会给出警告

DELPHI

  • macOS 支持 ARM64(M1芯片),并移除了QTKit/Quicktime 单元支持
  • 支持二进制表达式,前缀是%,如 %10010011
  • 支持数字分隔符,字符是下划线,如 100_200_300 对应 100200300
  • 汇编支持 AVX512 指令了

C++

  • 新的代码格式化程序
  • C++会生成 Delphhi 兼容的RTTI 信息,typeid() 函数返回 std::typeinfo
  • 可以在 Delphi 类上使用 std::make_unique 和 std::make_shared 智能指针来管理
  • C++ 增加对 Delphi 原生类型字符串转换的支持 ( to_string()/from_string() )
  • CLang 编译器在接口不是从 IUknown 继承时给出警告
  • C++ 64位调试器支持附加进程
  • 修复了批量编译工程时忽略 .c 文件的问题

VCL 框架

  • TRichEdit 支持到 4.1
  • 修改了应用默认字体
  • TCustomMemo/TCustomGroupBox/TCustomComboBox/TWICImage/TCoolBar/TNumberBox/TButtonCategory/公共对话框增加了一些新属性
  • TTrackBar 增加了一个 OnTracking 事件
  • TTreeView 增加复选框支持
  • 增加了 TLabelDBEdit 组件
  • 从流中创建窗体时出错时,会提示出错文件名
  • TControl增加了一个RaiseOnNoneMainThreadUsage属性,在线程中创建时,如果该属性为 true 则抛异常
  • StyleUtils.inc 变成了一个普通的单元
  • TScrollBox 默认支持鼠标滚轮
  • TCustomTitleBarPanel 增强 了几个事件
  • TDateTimePicker 允许同时修改日期时间,终于不需要用第三方的了
  • TPngImage 支持与 TWICIMage 的句柄交互
  • TWinControl 增加了LockDrawing和UnlockDrawing 来控制控件的绘制操作
  • 其它一些改进
    • ScaleImage 支持 Alpha 通道
    • 默认窗体大小尺寸变大了
    • SetSelText/SetSelTextBuf 撤消缓存区默认不支持,由 CanUndoSelText 管理
    • TEdgeBrowser 未具体说明的改进

Firemonkey 框架

  • 核心重构:扩展了 IFMXDisplayService 和 TDisplay,并且重构了 IFMXSaveStateService/IFMXDeviceService/IFMXVirtualKeyboardService/IFMXTimerService/IFMXLoggingService/IFMXMenuService
  • TWebBrowser 组件在 Windows 下支持 Chromium 核心的 Edge
  • 支持谷歌计费库和Android API 30
  • 支持应用程序生成多个 classes.dex 文件,并且替换了编译器。新编译器与旧项目不兼容,打开后需要将库结点还原为默认
  • FMX 辅助工具包不再需要单独下载
  • 优化了同时使用样式和平台控件组合时的 Z 顺序管理
  • 在 Android 平台支持 TWebBrowser 文件上传(没用过,原来不支持呀)

RTL 运行时

  • 平台标志符全部改为<平台名称><架构><位数>,Android 和 OSX的平台标志有变动。
  • TZIP 增强 ZIP64 支持和删除其中文件的支持,现在可以支持大于 4G 的压缩文件
  • TMemoryStream 支持大于 2G 的内容
  • 日期时间和货币类型新增了 Helper 支持
  • 多平台蓝牙和 BLE 改进
  • 字典类型内存和哈希算法改进,内部实现类TListHelper被删除
  • TValue 增加对 TDateTime 的特定支持,与 Variant 类型的转换也进行了改进
  • TThreadPoolStats.Get 改为 public,以便更好的访问线程池的统计信息
  • 增加 TPointerStream 以支持使用 TStream 接口读写内存数据
  • 日期时间转换成字符串的增强
  • 支持使用 System.Generics.Defaults._MakeInterfaceInstance 来创建一个接口实例,所有的实例函数都指向匿名函数(这个和 Java 里创建接口实例类似了)
  • 增加了 TNoRefCountObject 来表达一个无引用计数的接口(替换旧的 TSingletonObject)
  • 优化了记录和数组的释放代码
  • 改进 Pos 函数
  • 优化 TArray<T> 的二分法搜索函数 BinarySearch
  • TList<T>.Sort 方法增加重载支持部分排序
  • System.IOUtils.TFile 增加 Size ,TPath做了一些提升
  • TObject ClassParent 和 InitInstance 方法的性能修复
  • 增加对超过260个字符的路径的支持
  • TThread 增加一个 OnSynchronize 事件,这个应该是内部的处理,就象 MainThreadWakeup 一样
  • JSON 调整了ParseJSONValue 函数的位置,TJSONObject.AddPair 增加了一个整型重载
  • UTF8ToString 移除了一个 AnsiChar 的支持
  • FireDAC 基本就是对新的数据库版本的支持和少量改进
  • HTTPClient/Internet 增强
    • Base64 Url编码支持
    • 增加 HTTP/2 支持
    • ContentType 改成了字符串类型
    • TCertificate 增加公钥内容
    • Windows 下支持 TLS 1.3
    • TSocket 多重改进

还有一些变动,包括安装程序的改进和RAD Server/WebBroker 等等,没有翻译,有关注的自行查看原文。

Delphi