developer tip

Delphi 언어 기능 및 소개 / 비추천 된 버전 목록

optionbox 2020. 8. 4. 07:30
반응형

Delphi 언어 기능 및 소개 / 비추천 된 버전 목록


시작하기 전에 Google을 통해 정직하고 진지하게 반복적으로 철저하게 검색하여 해당 항목을 찾을 수 없음을 지적하고 싶습니다.

모든 델파이 (2007에서 최신 릴리스 버전까지), 더 이상 2007 년 이전 버전을 지원하지 않는 "언어 기능", 그리고 소개 된 버전 및 ( 해당되는 경우) 더 이상 사용되지 않거나 개선되거나 제거되었습니다.

필자는 Stack Overflow에서 이와 비슷한 질문을 한 적이 있지만 대부분은 "어떤 기능이 가장 좋습니까?"

누구든지 그러한 목록을 알고 있거나 (또는 ​​컴파일 할 여가 시간이 충분하다면) 매우 감사 할 것입니다.

수락 된 답변에는 그러한 목록에 대한 링크 또는 목록 자체가 포함됩니다.


이 답변에는 새로운 VCL / FMX 기능이
아닌 새로운 언어 기능 만 나열되어 있습니다.

다음은 RAD Studio Docwiki에 대한 링크입니다.

Embarcadero의 전체 목록 : 새로운 기능
참조 : David I 's list


요약:

델파이 10.3.x, 10.4 (아직, 추론입니다)

델파이 10.3

  • 64 비트 Linux 컴파일러는 더 이상 ARC 를 사용하지 않고 대신 Windows 컴파일러에서와 같이 관리되는 기본 수동 관리를 사용합니다. 이를 통해 Windows 또는 OSX에서 Linux로 코드를 포팅하는 것이 훨씬 쉬워집니다.
  • 자동 유형 유추가있는 인라인 변수
  • Linux에서 활성화시 8 비트 AnsiChar / AnsiString 지원
  • C ++ Builder와 Delphi는 이제 모든 호출에 동일한 ABI를 사용합니다.

델파이 10.2 도쿄

델파이 10.1 베를린

델파이 10 시애틀

  • Android 5.1.1 및 iOS 8.4 지원
  • 개선 된 OSX 예외 처리

델파이 XE8

  • 64 비트 iOS 지원;
  • 새로운 정수 유형 : 모든 플랫폼에서 FixedInt , FixedUInt 32 비트 정수 유형;
  • 새로운 플랫폼 종속 정수 유형 : LongInt , LongWord (iOS-64의 64 비트, 다른 모든 플랫폼의 32 비트);

델파이 XE7

델파이 XE6

델파이 XE5

델파이 XE4

At XE4, this changed so that $ENDIF became an accepted terminator for $IF, $IFDEF, $IFNDEF, and $IFOPT.

Delphi XE3

Delphi XE2

Delphi XE

  • The {$STRINGCHECKS} compiler directive is ignored in XE;
  • New 16-byte value for the {$ALIGN} directive: The acceptable values for the {$ALIGN} directive now include 1, 2, 4, 8, and 16.
  • new {$CODEALIGN} directive, this sets the starting address for a procedure or function.
  • The {$STRONGLINKTYPES ON} directive
  • Support for regular expressions.

Delphi 2010

  • Enhanced Delphi RTTI (Run Time Type Information).
  • Attributes
  • The as operator can be used to cast an interface reference back to the object from which it was extracted.
  • The is operator can be used to verify whether an interface reference was extracted from a certain class.
  • Normal unsafe casting can be performed on an interface: TObject(SomeInterface).
  • new 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
  • Class Constructor/Destructor

Delphi 2009

Delphi 2007

  • No language changes that I know of;
    Note that Delphi 2007 is a non-breaking release, DCU's from D2006 will work unchanged in D2007;
  • (The .NET 'personality' of 2007 introduced generics)

Delphi 2006

Delphi 2005

  • for ... in loops,
  • inline keyword
  • Wildcard in uses statement allowed
  • nested types
  • nested constants
  • {$REGION}/{$ENDREGION} directives

Delphi 7

  • three additional compiler warnings:
    • Unsafe_Type,
    • Unsafe_Code, and
    • Unsafe_Cast. These warnings are disabled by default, but can be enabled
  • new compiler directive {$WARN UNSAFE_CODE ON}
  • Overloads of routines that format and parse numbers, date-time values, and currency using a TFormatSettings structure.

Delphi 6

Delphi 5

No new language features, but:

Delphi 4

  • Dynamic arrays
  • LongWord and Int64; Cardinal is an UINT32 (before it was unsigned 31-bit value)
  • Real takes 8 bytes and is the same as double (previously it was 6 bytes);
    • Override with the new {$REALCOMPATIBILITY ON} compiler directive;
    • REAL48 replaces the old 6-byte real;
  • Support for resourcestrings
  • Method overloading
  • Default parameters
  • {$EXTERNALSYM} and {$NODEFINE} directives
  • implements keyword for properties

Delphi 3

  • Wordbool, longbool and bytebool store true as -1 instead of 1 (Boolean is unchanged)
  • Components must be installed using packages.
  • Assertions.
  • out parameters.
  • Widestring
  • interface and dispinterface keyword and COM (dispid) support.

Delphi 2

  • Support for 32-bit;
  • Ansistring replaces shortstring as the default string type
  • Currency
  • Variant (for interop with OLE automation).
  • Threading support and ThreadVar keyword.
  • 4 byte data is 4 byte aligned new packed keyword overrides this behavior;
  • TDateTime starts at 1899/12/30 under D1 it started at 0000/00/00
  • new finalization keyword
  • register and stdcall calling conventions added.
  • packed keyword.

Just for complement the answer of Johan check this entry on my blog List of changes between versions of Delphi (Since Delphi 5) and the excellent page The TIndex which list most of the new features since delphi 2005 and resources about each one.


The jedi.inc file used by the Dephi JEDI project exposes a series of feature defines. If your project is MPL-compatible, you could even use it for feature detection and save yourself the trouble of reinventing that particular wheel.

For example, it defines SUPPORTS_FOR_IN if the compiler supports enumerators. One could wrap your enumerator code in an IFDEF checking for that define rather than checking for a particular compiler version.

참고URL : https://stackoverflow.com/questions/8460037/list-of-delphi-language-features-and-version-in-which-they-were-introduced-depre

반응형