Sebelum saya mulai, saya ingin menunjukkan bahwa saya telah dengan jujur dan sungguh-sungguh mencari hal seperti itu berulang kali dan secara mendalam melalui Google, dan tidak dapat menemukannya.
Saya memerlukan (untuk proyek yang saya kembangkan) daftar semua Delphi (2007 hingga versi rilis terbaru, saya tidak lagi mendukung versi apa pun yang lebih lama dari 2007) "Fitur Bahasa", dan versi di mana mereka diperkenalkan dan ( jika ada) tidak digunakan lagi, diperbaiki atau dihapus.
Saya telah mencatat pertanyaan serupa dengan ini di Stack Overflow sebelumnya, meskipun sebagian besar diutarakan dalam bentuk "fitur mana yang terbaik", dan ditutup karena dianggap tidak sesuai.
Jika ada yang mengetahui daftar seperti itu (atau memiliki cukup waktu luang untuk menyusunnya), saya akan sangat berterima kasih.
Jawaban yang diterima akan berisi tautan ke daftar semacam itu, atau daftar itu sendiri.
sumber
Jawaban:
Perhatikan bahwa jawaban ini hanya mencantumkan fitur bahasa baru,
bukan fitur VCL / FMX baru.
Berikut ini tautan ke docwiki RAD Studio:
Daftar lengkap dari Embarcadero: What's New
Lihat juga: daftar David I.
Untuk meringkas:
Delphi 10.3.x, 10.4 (belum keluar, ini spekulatif)
Delphi 10.3
Delphi 10.2 Tokyo
@
operator hanya diperbolehkan saat melakukan hard-casting pada array.Delphi 10.1 Berlin
[weak]
,[unsafe]
dan[volatile]
atribut yang didukung pada semua kompiler.Delphi 10 Seattle
Delphi XE8
Delphi XE7
Rutinitas intrinsik kompilator baru (tidak berdokumen):
function IsManagedType(T: TypeIdentifier): Boolean; function HasWeakRef(T: TypeIdentifier): Boolean; function GetTypeKind(T: TypeIdentifier): TTypeKind; function IsConstValue(Value): boolean;
Delphi XE6
Delphi XE5
membutuhkan perangkat dengan ArmV6 + Neon atau ArmV7 untuk penerapan
memperkenalkan definisi bersyarat ANDROID
Delphi XE4
Persyaratan baru berikut diperkenalkan / diaktifkan di XE4:
AUTOREFCOUNT
CPUARM
EXTERNAL_LINKER
IOS
NEXTGEN
UNDERSCOREIMPORTNAME
WEAKREF
WEAKINSTREF
WEAKINTREF
dependency
Direktif baru untuk menentukan dependensi pustaka eksternal (tidak berdokumen hingga XE8).Perhatikan bahwa sebagian besar dasar untuk ARC sudah ada di XE3, tetapi sebagian besar telah dinonaktifkan
$IF
pernyataan hanya bisa dihentikan dengan$IFEND
, dan$IFDEF
,$IFNDEF
,$IFOPT
arahan hanya bisa dihentikan dengan$ENDIF
.Di XE4, ini berubah sehingga $ ENDIF menjadi terminator yang diterima untuk $ IF, $ IFDEF, $ IFNDEF, dan $ IFOPT.
Delphi XE3
AtomicExchange()
,AtomicIncrement()
,AtomicCmpExchange()
,AtomicDecrement()
Delphi XE2
Packed
Sekarang Forces Byte Alignment of Records (Pra XE2 tidak perlu melakukan ini)Delapan DEFINE baru telah ditambahkan:
ALIGN_STACK
CPUX86
CPUX64
MACOS (sistem operasi Mac)
MACOS32
PC_MAPPED_EXCEPTIONS
PIC
WIN64
uses
klausa Anda .{$ExcessPrecision on/off}
kompilator direktif (hanya x64)Delphi XE
{$STRINGCHECKS}
compiler direktif diabaikan dalam XE;{$ALIGN}
direktif: Nilai yang dapat diterima untuk{$ALIGN}
direktif sekarang termasuk 1, 2, 4, 8, dan 16.{$CODEALIGN}
direktif baru , ini menetapkan alamat awal untuk prosedur atau fungsi.{$STRONGLINKTYPES ON}
direktifDelphi 2010
as
operator dapat digunakan untuk melemparkan kembali referensi antarmuka ke objek dari yang diekstraksi.is
operator dapat digunakan untuk memverifikasi apakah referensi antarmuka diekstraksi dari kelas tertentu.TObject(SomeInterface)
.delayed
direktif baru menunjukkan bahwa perpustakaan eksternal seperti DLL tidak akan dimuat pada waktu deklarasi tetapi menunggu sampai panggilan pertama ke metodeDelphi 2009
string
sekarang dipetakan keUnicodeString
;{$HighCharUnicode on|off}
kompiler direktiffunction Default(T): T
fungsi intrinsik (tidak berdokumen){$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
Fungsi dapat mengambil parameter menentukan hasilnya;resourcestrings
sebagai Widestrings;TObject
memiliki penunjuk tersembunyi ekstraTMonitor
selain penunjuk VMT;deprecated
kata kunci sekarang dapat memiliki teks tambahanDelphi 2007
Perhatikan bahwa Delphi 2007 adalah rilis non-breaking, DCU dari D2006 akan bekerja tanpa perubahan pada D2007 ;
Delphi 2006
static
metode dan properti;strict
kata kunci visibilitas pribadi / dilindungi ;final
kata kunci untuk metode virtual;{$METHODINFO}
pengarahan;Delphi 2005
for ... in
loop,inline
kata kunci{$REGION}
/{$ENDREGION}
direktifDelphi 7
{$WARN UNSAFE_CODE ON}
TFormatSettings
struktur.Delphi 6
[TCustomVariantType][68]
memberikan operator overloading untuk jenis varian kustom{$IFDEF MSWINDOWS}
{$IFDEF LINUX}
{$LIBPREFIX}
{$LIBSUFFIX}
{$LIBVERSION}
{$MESSAGE 'message'}
{$SetPEFlags}
{$IF}{$ELSE}
arahan kompilerexperimental
,deprecated
,library
,platform
(tapi tanpa teks tambahan untuk usang)OLEVariant
{$J+}
)varargs
fungsi eksternal (tetapi hanya untukcdecl
konvensi pemanggilan)Delphi 5
Tidak ada fitur bahasa baru, tetapi:
Delphi 4
LongWord
danInt64
;Cardinal
adalah UINT32 (sebelum itu unsigned nilai 31-bit)Real
mengambil 8 byte dan sama dengandouble
(sebelumnya 6 byte);{$REALCOMPATIBILITY ON}
direktif kompilator baru ;REAL48
menggantikan 6-byte yang lamareal
;resourcestrings
{$EXTERNALSYM}
dan{$NODEFINE}
arahanimplements
kata kunci untuk propertiDelphi 3
true
sebagai-1
bukan 1 (Boolean tidak berubah)packages
.out
parameter.Widestring
interface
dan dukungandispinterface
kata kunci dan COM (dispid
).Delphi 2
Ansistring
menggantikanshortstring
sebagai tipe string defaultCurrency
Variant
(untuk interop dengan otomatisasi OLE).ThreadVar
kata kunci.packed
kata kunci selaras menimpa perilaku ini;1899/12/30
bawah D1 itu dimulai pada0000/00/00
finalization
kata kunci baruregister
danstdcall
konvensi panggilan ditambahkan.packed
kata kunci.sumber
$LIBPREFIX
arahan dkk ada setidaknya sejak D7 (saya curiga D6, karena terkait Kylix)Hanya untuk melengkapi jawaban Johan, periksa entri ini di blog saya
List of changes between versions of Delphi (Since Delphi 5)
dan halaman luar biasaThe TIndex
yang mencantumkan sebagian besar fitur baru sejak delphi 2005 dan sumber daya tentang masing-masing.sumber
File jedi.inc yang digunakan oleh proyek Dephi JEDI memperlihatkan serangkaian definisi fitur. Jika proyek Anda kompatibel dengan MPL, Anda bahkan dapat menggunakannya untuk deteksi fitur dan menyelamatkan diri Anda dari masalah menemukan kembali roda tersebut.
Misalnya, ini mendefinisikan
SUPPORTS_FOR_IN
apakah kompiler mendukung enumerator. Seseorang bisa membungkus kode enumerator Anda denganIFDEF
memeriksa definisinya daripada memeriksa versi kompiler tertentu.sumber
jedi.inc
paling tidak akurat, sementara daftar Johan perlu beberapa verifikasi.