Delphi 언어 기능 및 해당 기능이 도입 / 사용되지 않는 버전 목록


113

시작하기 전에 Google을 통해 정직하고 진심으로 반복해서 철저히 검색해 왔지만 찾지 못했다는 점을 지적하고 싶습니다.

(개발중인 프로젝트의 경우) 모든 Delphi 목록 (2007 년부터 최신 릴리스 버전까지, 2007 년 이전 버전은 더 이상 지원하지 않음) "언어 기능"과 해당 기능이 도입 된 버전 및 ( 해당되는 경우) 지원 중단, 개선 또는 제거되었습니다.

이전에 Stack Overflow에서 이와 유사한 질문을 언급했지만, 대부분은 "어떤 기능이 가장 좋은지"라는 형식으로 표현되었고 부적합하다고 간주되어 종료되었습니다.

누군가가 그러한 목록을 알고 있다면 (또는 하나를 컴파일하기에 충분한 시간이 있다면) 매우 감사 할 것입니다.

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


Q : 그렇다면 이러한 목록이 정확히 필요한 이유는 무엇입니까? Q : BDS2007과 XE2 사이의 모든 플랫폼을 지원하는 (즉, BDS2007보다 새로운 기능을 사용 하지 않는 ) 하나의 코드 세트 (구성 요소 또는 라이브러리)를 만들려고 합니까? Q : 그렇다면 2007 년에 컴파일을 시도해보고 어떤 문제가 있는지 확인하십시오. (추신 : 저는 여전히 BDS2006을 사용하고 있습니다;)).
paulsm4

8
Simon은이 질문을 확인합니다 . Delphi Language, RTL, VCL의 새로운 기능에 대한 다양한 목록? , 또한 내 블로그 에서 델파이 버전 간의
RRUZ

3
@ paulsm4 1) 따라서 공용 라이브러리의 버전 간 기능 제한을 설명 할 수 있습니다. 2) 예 (반드시 구성 요소 라이브러리는 아님), 3) 라이브러리의 모든 개별 측면을 여러 버전에서 지속적으로 테스트하는 것보다 미리 아는 것이 더 쉽기 때문입니다. . 이론적으로 D2006은 잘 작동하지만 적극적으로 지원하지는 않을 것입니다.
LaKraven

답변:


158

이 답변 은 새로운 VCL / FMX 기능이
아닌 새로운 언어 기능 만 나열 합니다.

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

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


요약:

Delphi 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

XE4에서는 $ ENDIF가 $ IF, $ IFDEF, $ IFNDEF 및 $ IFOPT에 대해 승인 된 종료자가되도록 변경되었습니다.

델파이 XE3

델파이 XE2

델파이 XE

  • {$STRINGCHECKS}컴파일러 지시어는 XE에서 무시됩니다;
  • {$ALIGN}지시문의 새 16 바이트 값 : 지시문에 허용되는 값은 {$ALIGN}이제 1, 2, 4, 8 및 16을 포함합니다.
  • new {$CODEALIGN}지시문은 프로 시저 또는 함수의 시작 주소를 설정합니다.
  • {$STRONGLINKTYPES ON}지침
  • 정규식 지원.

델파이 2010

  • 향상된 Delphi RTTI (런타임 유형 정보).
  • 속성
  • as작업자는 추출 된 객체에 대한 인터페이스 참조 위로 캐스팅하는데 사용될 수있다.
  • is오퍼레이터 인터페이스 참조가 특정 클래스로부터 추출되었는지 여부를 확인하기 위해 사용될 수있다.
  • 인터페이스에서 일반적으로 안전하지 않은 캐스팅을 수행 할 수 있습니다 TObject(SomeInterface)..
  • new delayed지시문은 DLL과 같은 외부 라이브러리가 선언시로드되지 않고 메서드에 대한 첫 번째 호출까지 대기 함을 나타냅니다.
  • 클래스 생성자 / 소멸자

델파이 2009

델파이 2007

  • 내가 아는 언어 변경이 없습니다.
    Delphi 2007은 non-breaking 릴리스이며 D2006의 DCU는 D2007에서 변경되지 않고 작동합니다 .
  • (2007 년의 .NET '성격'은 제네릭을 도입했습니다 )

델파이 2006

델파이 2005

  • for ... in 루프,
  • inline 예어
  • uses 문에서 와일드 카드 허용
  • 중첩 유형
  • 중첩 된 상수
  • {$REGION}/ {$ENDREGION}지시문

델파이 7

  • 세 가지 추가 컴파일러 경고 :
    • Unsafe_Type,
    • Unsafe_Code 및
    • Unsafe_Cast. 이러한 경고는 기본적으로 비활성화되어 있지만 활성화 할 수 있습니다.
  • 새로운 컴파일러 지시문 {$WARN UNSAFE_CODE ON}
  • TFormatSettings구조를 사용하여 숫자, 날짜-시간 값 및 통화를 형식화하고 구문 분석하는 루틴의 오버로드 .

델파이 6

델파이 5

새로운 언어 기능은 없지만 :

델파이 4

  • 동적 배열
  • LongWordInt64; CardinalUINT32 (부호없는 31 비트 값 이전)
  • Real8 바이트를 취하고 다음과 동일합니다 double(이전에는 6 바이트였습니다).
    • {$REALCOMPATIBILITY ON}컴파일러 지시문으로 재정의하십시오 .
    • REAL48이전 6 바이트를 대체합니다 real.
  • 을지 지하다 resourcestrings
  • 메서드 오버로딩
  • 기본 매개 변수
  • {$EXTERNALSYM}{$NODEFINE}지침
  • implements속성에 대한 키워드

델파이 3

  • Wordbool, LongBool입니다 및 bytebool 저장소 true로서 -11 대신 (부울 변하지)
  • 구성 요소는를 사용하여 설치해야합니다 packages.
  • 주장.
  • out 매개 변수.
  • Widestring
  • interfacedispinterface키워드 및 COM ( dispid) 지원.

델파이 2

  • 32 비트 지원;
  • Ansistringshortstring기본 문자열 유형으로 대체
  • Currency
  • Variant (OLE 자동화와의 상호 운용을 위해).
  • 스레딩 지원 및 ThreadVar키워드.
  • 4 바이트 데이터는 4 바이트로 정렬됩니다. 새 packed키워드가이 동작을 재정의합니다.
  • TDateTime은 1899/12/30 D1에서 시작합니다.0000/00/00
  • finalization키워드
  • registerstdcall호출 규칙이 추가되었습니다.
  • packed 예어.

아 멋지다! Docwiki에서 이전 버전의 Delphi (XE2 이전)와 관련된 페이지를 표시하는 방법을 찾을 수 없습니다 ... 이유를 모르겠습니다! 이것은 훌륭하고 정답으로 표시되었습니다! 감사!
LaKraven

그것은 2007 년에 새로운 기능이 유용합니다 @DavidHeffernan이 세트부터베이스 라인은 ... 어떤 의미에서, 나는 확실하게 알 수 있는지 내가 생산하고있는 무슨의 일부 수 아마 (나 자신이 경우에도 이전 버전의 작업 지원할 의도 없음)
LaKraven 2011

9
내 블로그 에서 Delphi
RRUZ

3
이런 쓰레기가 지연되었습니다. 정말 대단합니다! 업그레이드 할 때이 목록을 제공하지 않는 이유는 무엇입니까?
Peter Turner

1
이것은 정확하지 않습니다. $LIBPREFIX등의 지침은 적어도 D7 이후 존재합니다 (Kylix와 관련이 있으므로 D6가 의심됩니다)
Free Consulting

16

Johan 의 답변을 보완하기 위해 내 블로그에서이 항목을 확인 List of changes between versions of Delphi (Since Delphi 5)하고 The TIndex델파이 2005 이후 대부분의 새로운 기능과 각 기능에 대한 리소스를 나열한 우수한 페이지 를 확인하십시오.


언젠가 다른 델파이 사이트 인 delphi3000 은 일부 바이러스 백신에 대해 위험한 것으로 표시되었습니다.
RRUZ 2011

2
저는 The TIndex의 소유자이며 오 탐지임을 확인할 수 있습니다.
LachlanG

7

jedi.inc Dephi JEDI 프로젝트에서 사용하는 파일은 기능을 정의하는 일련의를 제공합니다. 프로젝트가 MPL과 호환되는 경우 기능 감지에 사용할 수도 있고 특정 휠을 재발 명하는 수고를 덜 수 있습니다.

예를 들어 SUPPORTS_FOR_IN컴파일러가 열거자를 지원하는지 여부를 정의 합니다. IFDEF특정 컴파일러 버전을 확인하는 대신 해당 정의를 확인하는 데 열거 자 코드를 래핑 할 수 있습니다 .


예, 여기에는 확실히 도움이되지만 자세한 목록의 완전성이 부족합니다 (따라서이 질문). 제안 해 주셔서 감사합니다 ...이 질문에 대한 답변이 jedi.inc에서 제공하는 정보에 대한 개선 사항이라고 생각하십시오. :)
LaKraven

1
@LaKraven : 사실, 그것이 얻지 못하는 것들이 많이 있지만, 일부에게는 충분할 수 있습니다. 또한 이미 완료된다는 장점도 있습니다. :-) 개인적으로, 저는 VCL 계층 구조를 평평하게하고, 저작권 헤더를 제거하고, 그것들을 모두 버전 관리 저장소에 던지는 것도 편리 할 것이라고 생각합니다. 이렇게하면 특정 RTL / VCL 기능이 구현 된시기를 확인할 수 있습니다.
afrazier 2011

@LaKraven, 나는 jedi.inc적어도 정확 하다고 생각 하지만 Johan의 목록에는 몇 가지 확인이 필요합니다.
무료 컨설팅
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.