Delphi dili özelliklerinin listesi ve kullanıma sunulduğu / kullanımdan kaldırıldığı sürüm


114

Başlamadan önce, böyle bir şeyi Google aracılığıyla dürüstçe ve gerçekten defalarca aradığımı ve bulamadığımı belirtmek isterim.

(Geliştirmekte olduğum bir proje için) tüm Delphi (2007'den en son yayımlanan sürüme kadar, 2007'den daha eski sürümleri artık desteklemiyorum) "Dil Özellikleri" ve bunların tanıtıldığı sürümlerin bir listesini istiyorum ( uygun olduğu durumlarda) kullanımdan kaldırıldı, iyileştirildi veya kaldırıldı.

Buna benzer soruları daha önce Stack Overflow'da not etmiştim, ancak bunların çoğu "hangi özellik en iyisidir" şeklinde ifade edilmiş ve uygun olmadığı düşünülerek kapatılmıştır.

Böyle bir listeyi bilen biri varsa (veya bir tane derlemek için yeterince boş zamanı varsa), çok minnettar olurum.

Kabul edilen cevap ya böyle bir listeye bir bağlantı ya da listenin kendisini içerecektir.


S: Öyleyse tam olarak neden böyle bir listeye ihtiyacınız var? S: BDS2007 ve XE2 arasındaki tüm platformları destekleyen (yani BDS2007'den daha yeni hiçbir özellik kullanmayan) bir kod seti (belki bir bileşen veya kitaplık) oluşturmaya mı çalışıyorsunuz ? S: Öyleyse, neden 2007'de derlemeyi denemiyorsunuz ve hangi kırılmalara bakmıyorsunuz? (Not: Hala mutlu bir şekilde BDS2006 kullanıyorum;)).
paulsm4


3
@ paulsm4 1) Böylece, halk kütüphanelerindeki sürümler arasındaki özellik sınırlamalarını hesaba katabilirim, 2) Evet (ancak bir Bileşen Kitaplığı gerekli değildir), 3) Önceden bilmek, bir kitaplığın her yönünü farklı sürümlerde sürekli test etmekten daha kolaydır . Teorik olarak D2006 iyi çalışır, ancak onu aktif olarak desteklemeyeceğim (alınma).
LaKraven

Yanıtlar:


159

Bu yanıtın yeni VCL / FMX özelliklerini
değil, yalnızca yeni dil özelliklerini listelediğini unutmayın .

İşte RAD Studio docwiki'nin bağlantıları:

Embarcadero'dan tam liste: Yenilikler
Ayrıca bkz: David I'in listesi


Özetlemek:

Delphi 10.3.x, 10.4 (henüz çıkmadı, bu spekülatif)

Delphi 10.3

  • 64-bit Linux derleyicisi artık ARC kullanmamaktadır , bunun yerine Windows derleyicisinde olduğu gibi varsayılan manuel yönetileni kullanır. Bu, kodun Windows veya OSX'ten linux'a taşınmasını çok daha kolay hale getirir.
  • Otomatik tür çıkarımlı satır içi değişkenler
  • Linux üzerinde etkinleştirmede 8 bit AnsiChar / AnsiString desteği.
  • C ++ Builder ve Delphi artık tüm aramalar için aynı ABI'yi kullanıyor.

Delphi 10.2 Tokyo

Delphi 10.1 Berlin

Delphi 10 Seattle

  • Android 5.1.1 ve iOS 8.4 desteği
  • Geliştirilmiş OSX istisna işleme

Delphi XE8

  • 64 bit iOS desteği;
  • Yeni tam sayı türleri: Tüm platformlarda FixedInt , FixedUInt 32 bit tam sayı türleri;
  • Yeni platforma bağlı tam sayı türleri: LongInt , LongWord (iOS-64'te 64 bit, diğer tüm platformlarda 32 bit);

Delphi XE7

Delphi XE6

Delphi XE5

Delphi XE4

XE4'te bu değişti, böylece $ ENDIF $ IF, $ IFDEF, $ IFNDEF ve $ IFOPT için kabul edilen bir sonlandırıcı oldu.

Delphi XE3

Delphi XE2

Delphi XE

  • {$STRINGCHECKS}Derleyici yönergesi XE'de göz ardı edilir;
  • {$ALIGN}Yönerge için yeni 16 baytlık değer : Yönerge için kabul edilebilir değerler {$ALIGN}artık 1, 2, 4, 8 ve 16'dır.
  • yeni {$CODEALIGN}yönerge, bu bir prosedür veya işlev için başlangıç ​​adresini belirler.
  • {$STRONGLINKTYPES ON}yönerge
  • Normal ifadeler için destek.

Delphi 2010

  • Gelişmiş Delphi RTTI (Çalıştırma Süresi Tip Bilgileri).
  • Öznitellikler
  • asOperatör ekstre edildi olan nesneye bir arabirim referans geri dökme için kullanılabilir.
  • isOperatör bir arayüz referans belirli bir sınıftan ekstre edildi olup olmadığını doğrulamak için kullanılabilir.
  • Normal güvensiz döküm bir arabirimde yapılabilir: TObject(SomeInterface).
  • new delayedyönergesi, DLL gibi harici bir kitaplığın bildirim zamanında yüklenmeyeceğini, yöntemin ilk çağrısına kadar beklemesi gerektiğini belirtir.
  • Sınıf Oluşturucu / Yıkıcı

Delphi 2009

Delphi 2007

  • Bildiğim dil değişikliği yok;
    Delphi 2007'nin kesintisiz bir sürüm olduğunu, D2006'daki DCU'ların D2007'de değişmeden çalışacağını unutmayın ;
  • (2007'nin .NET 'kişiliği' jenerikleri tanıttı )

Delphi 2006

Delphi 2005

  • for ... in , döngüler
  • inline anahtar kelime
  • Kullanımlarda joker karaktere izin verildi
  • iç içe türler
  • iç içe sabitler
  • {$REGION}/ {$ENDREGION}yönergeler

Delphi 7

  • üç ek derleyici uyarısı:
    • Unsafe_Type,
    • Unsafe_Code ve
    • Unsafe_Cast. Bu uyarılar varsayılan olarak devre dışıdır ancak etkinleştirilebilir
  • yeni derleyici yönergesi {$WARN UNSAFE_CODE ON}
  • Bir TFormatSettingsyapı kullanarak sayıları, tarih-saat değerlerini ve para birimini biçimlendiren ve ayrıştıran aşırı yordamlar .

Delphi 6

Delphi 5

Yeni dil özelliği yok, ancak:

Delphi 4

Delphi 3

  • Wordbool, longbool ve bytebool deposu trueolarak -1yerine 1 (Boolean değişmez)
  • Bileşenler kullanılarak yüklenmelidir packages.
  • İddialar.
  • out parametreleri.
  • Widestring
  • interfaceve dispinterfaceanahtar kelime ve COM ( dispid) desteği.

Delphi 2

  • 32 bit desteği;
  • Ansistringshortstringvarsayılan dize türü olarak değiştirir
  • Currency
  • Variant (OLE otomasyonuyla birlikte çalışmak için).
  • İş parçacığı desteği ve ThreadVaranahtar kelime.
  • 4 bayt veri 4 bayt hizalı yeni packedanahtar kelime bu davranışı geçersiz kılar;
  • TDateTime D1 altında başlar1899/12/30 0000/00/00
  • yeni finalizationanahtar kelime
  • registerve stdcallarama kuralları eklendi.
  • packed Anahtar kelime.

Ah harika! Docwiki'nin bana Delphi'nin eski sürümlerine (XE2 öncesi) özel sayfaları göstermesini sağlamanın bir yolunu bulamadım ... nedenini bilmiyorum! Bu harika ve doğru cevap olarak işaretlendi! Teşekkürler!
LaKraven

@DavidHeffernan 2007'de yeni özelliklere sahip olmak yararlıdır çünkü bu temelleri belirler ... bir anlamda, ürettiklerimin bir kısmının belki daha önceki sürümlerde çalışıp çalışmayacağını kesin olarak bileceğim (kendim yapsam bile destekleme niyeti yok)
LaKraven

9
Blogumda Delphi
RRUZ

3
Holy Crap ERTELENDİ, bu HARİKA! Yükseltme yaptığınızda neden size bu listeyi vermiyorlar?
Peter Turner

1
Bu doğru değil. $LIBPREFIXve diğerleri direktifleri en azından D7'den beri var (Kylix ile ilgili oldukları için D6'dan şüpheleniyorum)
Ücretsiz Danışmanlık


7

Jedi.inc Dephi JEDI proje tarafından kullanılan dosya özelliği tanımlayıp bir dizi ortaya çıkarır. Projeniz MPL uyumluysa, onu özellik tespiti için bile kullanabilir ve o tekerleği yeniden keşfetme zahmetinden kurtulabilirsiniz.

Örneğin SUPPORTS_FOR_IN, derleyicinin numaralandırıcıları destekleyip desteklemediğini tanımlar . Numaralandırıcı kodunuzu, IFDEFbelirli bir derleyici sürümünü kontrol etmek yerine bu tanım için bir kontrol ile sarmalayabilirsiniz .


Evet, bu dahil etme kesinlikle yararlıdır, ancak ayrıntılı bir listenin tamlığından yoksundur (dolayısıyla bu soru). Öneriniz için teşekkürler ... Bu sorunun kabul edilen cevabını jedi.inc tarafından sağlanan bilgilerde bir geliştirme olarak düşünün :)
LaKraven

1
@LaKraven: Doğru, alamadığı çok şey var ama bazıları için yeterli olabilir. Aynı zamanda zaten yapılmış olma avantajına da sahiptir. :-) Şahsen, VCL hiyerarşilerini düzleştirmenin, telif hakkı başlıklarını çıkarmanın ve hepsini bir sürüm kontrol havuzuna atmanın da kullanışlı olabileceğini düşünüyorum. Bu şekilde, belirli RTL / VCL özelliklerinin ne zaman uygulandığını görebilirsiniz.
afrazier

@LaKraven, jedi.incen azından doğru olanın ne olduğuna inanıyorum , ancak Johan'ın listesinin bazı doğrulamalara ihtiyacı var.
Ücretsiz Danışmanlık
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.