在我开始之前,我想指出的是,我已经诚实和真诚地通过谷歌反复和详尽地搜索了这样的东西,但未能找到一个。
我需要(为我正在开发的项目)所有 Delphi (2007年到最新发布的版本,我不再支持任何版本早于2007年)“语言功能”的列表,以及它们被引入和(在适用的情况下)弃用、改进或删除的版本。
我以前在Stack Overflow上注意到过类似的问题,尽管大多数问题都是以“哪个特性最好”的形式表达的,并被认为是不合适的。
如果有人知道这样一个名单(或有足够的业余时间编制一个),我将非常感激。
被接受的答案将包含到这样的列表的链接,或者列表本身。
3条答案
按热度按时间7qhs6swi1#
请注意,此答案仅列出新的 * 语言 * 功能
不是新的VCL/FMX功能。
以下是RAD Studio docwiki的链接:
Embarcadero的完整列表:What's New显示器
另请参阅:David I's list
另请参阅:Delphi Master Release List wiki
总结一下:
我的天啊!
@
operator is only allowed when hard-casting the array.显示器[weak]
、[unsafe]
和[volatile]
属性。function IsManagedType(T: TypeIdentifier): Boolean; function HasWeakRef(T: TypeIdentifier): Boolean; function GetTypeKind(T: TypeIdentifier): TTypeKind; function IsConstValue(Value): boolean;
需要配备ArmV 6+氖或ArmV7的器械进行展开
推出conditional define ANDROID
自动引用计数
CPU ARM
外部链接器
内部监督系统
新一代
下划线输入名称
弱参考
弱应力
弱参考
dependency
指令,用于指定外部库的依赖项(XE 8之前未记录)。Note that much of the groundwork for ARC was already in XE3, but much of it was disabled
$IF
statements could only be terminated with$IFEND
,而$IFDEF
、$IFNDEF
、$IFOPT
指令只能以$ENDIF
结束。在XE 4中,这一点发生了变化,$ENDIF成为$IF、$IFDEF、$IFNDEF和$IFOPT的可接受终止符。
AtomicExchange()
、AtomicIncrement()
、AtomicCmpExchange()
、AtomicDecrement()
等系列产品我的天啊
Packed
Now Forces Byte Alignment of Records(在XE 2之前,它不一定会这样做)对齐堆叠
CPU X86处理器
CPU X64
MACOS(Mac操作系统)
MACOS 32型
PC_Map_异常
PIC公司
WIN 64操作系统
uses
clause.显示器{$ExcessPrecision on/off}
compiler directive(仅限x64){$STRINGCHECKS}
编译器指令在XE中被忽略;{$ALIGN}
指令的新16字节值:{$ALIGN}
指令的可接受值现在包括1、2、4、8和16。{$CODEALIGN}
指令,它设置过程或函数的起始地址。{$STRONGLINKTYPES ON}
指示词as
运算子可用来将界面指涉转换回撷取它的来源对象。is
运算符可用于验证接口引用是否是从某个类中提取的。TObject(SomeInterface)
.delayed
指令指示外部库(如DLL)不在声明时加载,而是等到第一次调用该方法时才加载我的天啊
string
现在Map到UnicodeString
;{$HighCharUnicode on|off}
compiler directive显示器function Default(T): T
intrinsic function (Undocumented)处理器{$PointerMath on|off}
;W1057 Implicit string cast from '%s' to '%s'
,W1058 Implicit string cast with potential data loss from '%s' to '%s'
,W1059 Explicit string cast from '%s' to '%s'
,W1060 Explicit string cast with potential data loss from '%s' to '%s'
;Exit
函数可以采用指定结果的参数;resourcestrings
作为宽字符串;TObject
除了其VMT指针之外还具有extra hidden pointer toTMonitor
;deprecated
关键字现在可以具有附加文本Enhanced records;
operator overloading;
static
方法和属性;FastMM是默认的内存管理器;
strict
private/protected visibility keyword ;虚拟方法的
final
关键字;{$METHODINFO}
指令;第一个字符
for ... in
循环,inline
关键字uses陈述式中允许万用字符
巢状型别
巢状常数
指令集
class helpers(为.net在 Delphi 8中添加);
{$WARN UNSAFE_CODE ON}
显示器TFormatSettings
结构格式化和分析数字、日期时间值和货币的例程重载。[TCustomVariantType][68]
提供了operator overloading for custom variant types{$IFDEF MSWINDOWS}
个{$IFDEF LINUX}
个{$LIBSUFFIX}
个{$LIBVERSION}
个{$MESSAGE 'message'}
个{$SetPEFlags}
个{$IF}{$ELSE}
编译器指令experimental
、deprecated
、library
、platform
(但不包含不建议使用的附加文本)OLEVariant
{$J+}
)varargs
外部函数(但仅适用于cdecl
调用约定)没有新的语言功能,但是:
第一个电子邮件地址
LongWord
和Int64
;Cardinal
是UINT 32 (在它是无符号31位值之前)Real
占用8个字节,并且与double
相同(以前它是6个字节);{$REALCOMPATIBILITY ON}
编译器指令重写;REAL48
替换旧的6字节real
;resourcestrings
implements
keyword用于属性第106页第1x页
true
存储为-1
而不是1(布尔值不变)packages
安装组件。out
参数的值。Widestring
个interface
和dispinterface
关键字以及COM(dispid
)支持。Ansistring
取代shortstring
成为预设字串类型Currency
个Variant
(用于与OLE自动化互操作)。ThreadVar
关键字。packed
关键字会覆盖此行为;1899/12/30
* 在D1下,它开始于0000/00/00
*finalization
关键字register
和stdcall
调用约定。packed
关键字。sxissh062#
只是为了补充Johan的答案,请在我的博客
List of changes between versions of Delphi (Since Delphi 5)
和优秀的页面The TIndex
上查看这个条目,其中列出了自 Delphi 以来的大多数新特性和关于每个特性的资源。ylamdve63#
Dephi JEDI项目使用的jedi.inc文件公开了一系列的特性定义,如果您的项目是与MPLS兼容的,您甚至可以使用它来进行特性检测,这样就保存了重新发明这个特定轮子的麻烦。
例如,如果编译器支持枚举数,它就定义了
SUPPORTS_FOR_IN
。可以将枚举数代码 Package 在IFDEF
中,检查该定义,而不是检查特定的编译器版本。