注:本文为简译,未翻译所有内容。
【本译文转自 http://blog.qdac.cc/?p=5375】
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 等等,没有翻译,有关注的自行查看原文。