LaK*_*ven 110 delphi delphi-2007
在开始之前,我想指出的是,我已经通过谷歌进行了这样的事情,并且无法找到一个,我已经诚实而真实地搜索过.
我要求(对于我正在开发的项目)列出所有Delphi(2007年到最新发布的版本,我不再支持2007年以前的任何版本)"语言功能",以及它们被引入的版本和(在适用的情况下)弃用,改进或删除.
我之前已经在Stack Overflow上注意到类似的问题,尽管其中大部分是以"哪个特征最好"的形式表达的,并且被认为是不合适的.
如果有人知道这样的清单(或有足够的业余时间来编制一个清单),我将非常感激.
接受的答案将包含指向此类列表的链接或列表本身.
Joh*_*ica 154
请注意,此答案仅列出新语言功能,
而不是新的VCL/FMX功能.
以下是RAD Studio docwiki的链接:
Embarcadero的完整列表:最新消息
另请参阅:David I的列表
总结一下:
Delphi 10.3.x,10.4(尚未推出,这是推测性的)
@只有在强制转换数组时才允许使用运算符将动态数组分配给指针. [weak],[unsafe]和[volatile]属性都支持所有的编译器. New compiler intrinsic routines (undocumented):
function IsManagedType(T: TypeIdentifier): Boolean;
function HasWeakRef(T: TypeIdentifier): Boolean;
function GetTypeKind(T: TypeIdentifier): TTypeKind;
function IsConstValue(Value): boolean;
The following new conditionals are introduced/enabled in XE4:
AUTOREFCOUNT
CPUARM
EXTERNAL_LINKER
IOS
NEXTGEN
UNDERSCOREIMPORTNAME
WEAKREF
WEAKINSTREF
WEAKINTREF
dependency directive for specifying the dependencies of an external library (undocumented until XE8).$IF statements could only be terminated with $IFEND, and the $IFDEF, $IFNDEF, $IFOPT directives could only be terminated with $ENDIF.At XE4, this changed so that $ENDIF became an accepted terminator for $IF, $IFDEF, $IFNDEF, and $IFOPT.
AtomicExchange(), AtomicIncrement(), AtomicCmpExchange(), AtomicDecrement()Packed Now Forces Byte Alignment of Records (Pre XE2 it did not necessarily do this) Eight new DEFINEs have been added:
ALIGN_STACK
CPUX86
CPUX64
MACOS (Mac operating system)
MACOS32
PC_MAPPED_EXCEPTIONS
PIC
WIN64
uses clause. {$ExcessPrecision on/off} compiler directive (x64 only){$STRINGCHECKS} compiler directive is ignored in XE; {$ALIGN} directive:
The acceptable values for the {$ALIGN} directive now include 1, 2, 4, 8, and 16. {$CODEALIGN} directive, this sets the starting address for a procedure or function. {$STRONGLINKTYPES ON} directive as operator can be used to cast an interface reference back to the object from which it was extracted. is operator can be used to verify whether an interface reference was extracted from a certain class. TObject(SomeInterface). delayed directive indicates that an external library such as a DLL is not to be loaded at declaration time but is to wait until the first call to the method string now maps to UnicodeString; {$HighCharUnicode on|off} compiler directivefunction 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 function can take a parameter specifying a result; resourcestrings as Widestrings; TObject has a extra hidden pointer to TMonitor in addition to its VMT pointer; deprecated keyword can now have additional text static methods and properties; strict private/protected visibility keyword; final keyword for virtual methods; {$METHODINFO} directive; for ... in loops, inline keyword {$REGION}/{$ENDREGION} directives {$WARN UNSAFE_CODE ON}TFormatSettings structure.[TCustomVariantType][68] provides operator overloading for custom variant types {$IFDEF MSWINDOWS}{$IFDEF LINUX} RRU*_*RUZ 16
只是为了补充Johan的答案,请在我的博客上查看此条目List of changes between versions of Delphi (Since Delphi 5)以及The TIndex列出自delphi 2005以来的大部分新功能以及每个资源的优秀页面.
| 归档时间: |
|
| 查看次数: |
26828 次 |
| 最近记录: |