Lista funkcji języka Delphi i wersji, w której zostały wprowadzone/wycofane

Zanim zacznę, chciałbym zaznaczyć, że szczerze i szczerze Szukałem wielokrotnie i wyczerpująco przez Google czegoś takiego i nie byłem w stanie go znaleźć.

Wymagam (dla projektu, który rozwijam) listy wszystkich Delphi (od 2007 do najnowszej wersji, nie obsługuję już żadnej wersji starszej niż 2007) "funkcji językowych", oraz wersji, w których zostały wprowadzone i (w stosownych przypadkach) przestarzałe, ulepszone lub usunięte.

Zauważyłem podobne pytania do tego na Stack Overflow wcześniej, choć większość z nich zostały sformułowane w formie "która funkcja jest najlepsza" i zamknięte jako uznane za nieodpowiednie.

Jeśli ktoś zna taką listę (lub ma wystarczająco dużo wolnego czasu, aby ją skompilować), byłbym bardzo wdzięczny.

Zaakceptowana odpowiedź będzie albo zawierała link do takiej listy, albo samą listę.

Author: Danilo Casa, 2011-12-11

3 answers

Zauważ, że ta odpowiedź wymienia tylko nowe język funkcje

[101]} oto linki do RAD Studio docwiki:

Pełna lista z Embarcadero: Co nowego
Zobacz też: lista Dawida I


Do podsumowania:

Delphi 10.3 (codename Carnival) (to be potwierdzone)

  • wsparcie dla OSX 64-bit
  • typy zerowe

Delphi 10.2 Tokyo

Delphi 10.1 Berlin

Delphi 10 Seattle

  • wsparcie dla Androida 5.1.1 i iOS 8.4
  • Ulepszona obsługa wyjątków OSX

Delphi XE8

    [110]}wsparcie dla 64-bitowego iOS;
  • nowe typy liczb całkowitych: FixedInt, FixedUInt 32-bitowe typy całkowite na wszystkich platformach;
  • nowa platforma zależna typy całkowite: LongInt, LongWord (64-bitowe na iOS-64, 32-bitowe na wszystkich innych platformach);

Delphi XE7

Delphi XE6

Delphi XE5

Delphi XE4

W XE4 to zmieniło się tak, że $ENDIF stał się akceptowanym terminatorem dla $IF, $IFDEF, $IFNDEF i $IFOPT.

Delphi XE3

Delphi XE2

Delphi XE

  • dyrektywa kompilatora {$STRINGCHECKS} jest ignorowana w XE;
  • Nowa 16-bajtowa wartość dla dyrektywy {$ALIGN}: Dopuszczalne wartości dla dyrektywy {$ALIGN} obejmują teraz 1, 2, 4, 8 i 16.
  • nowa dyrektywa {$CODEALIGN}, ustawia adres startowy procedury lub funkcji.
  • dyrektywa {$STRONGLINKTYPES ON}
  • wsparcie dla wyrażeń regularnych.

Delphi 2010

  • Enhanced Delphi RTTI (Run Time Type Information).
  • atrybuty
  • operator as może być użyty do oddania odniesienia interfejsu z powrotem do obiektu, z którego został / align = "left" /
  • operator is może być użyty do sprawdzenia, czy odniesienie do interfejsu zostało wyodrębnione z pewnej klasy.
  • normalne niebezpieczne odlewanie może być wykonywane na interfejsie: TObject(SomeInterface).
  • nowa dyrektywa delayed wskazuje, że zewnętrzna biblioteka, taka jak DLL, nie ma być ładowana w czasie deklaracji, ale ma czekać na pierwsze wywołanie metody
  • Konstruktor Klasy / Destruktor

Delphi 2009

Delphi 2007

  • żadnych zmian językowych, o których wiem;
    zauważ, że Delphi 2007 jest niełamliwym wydaniem, DCU z D2006 będzie działać bez zmian w D2007 ;
  • ("osobowość". NET z 2007 roku wprowadziła generyki)

Delphi 2006

Delphi 2005

  • for ... in pętle,
  • inline słowo kluczowe
  • Wildcard w poleceniu uses dozwolone
  • typy zagnieżdżone
  • zagnieżdżone stałe
  • {$REGION}/{$ENDREGION} dyrektywy

Delphi 7

  • trzy dodatkowe ostrzeżenia kompilatora:
    • Unsafe_Type,
    • Unsafe_Code i
    • Unsafe_Cast. te ostrzeżenia są domyślnie wyłączone, ale mogą być włączone
  • nowa dyrektywa kompilatora {$WARN UNSAFE_CODE ON}
  • przeciążenia procedur, które Formatuj i analizuj liczby, wartości daty i czasu oraz walutę za pomocą struktury TFormatSettings.

Delphi 6

Delphi 5

Brak nowych funkcji językowych, ale:

Delphi 4

  • tablice dynamiczne
  • LongWord i Int64; Cardinal jest UINT32 (zanim została niepodpisana 31-bitowa wartość)
  • Real zajmuje 8 bajtów i jest taki sam jak double (wcześniej było to 6 bajtów);
    • Override with the new {$REALCOMPATIBILITY ON} compiler directive;
    • REAL48 zastępuje stary 6-bajt real;
  • wsparcie dla resourcestrings
  • metoda przeciążenia
  • domyślne parametry
  • {$EXTERNALSYM} i {$NODEFINE} dyrektywy
  • implements słowo kluczowe dla właściwości

Delphi 3

    Wordbool, longbool i bytebool przechowują false jako -1 zamiast 1 (Boolean jest bez zmian)
  • komponenty muszą być instalowane za pomocą packages.
  • twierdzenia.
  • out parametry.
  • Widestring
  • interface i dispinterface keyword i COM (dispid) wsparcie.

Delphi 2

  • wsparcie dla 32-bitowych;
  • Ansistring zastępuje shortstring jako domyślny typ string
  • Currency
  • Variant (dla interop z OLE automation).
  • wsparcie dla gwintowania i ThreadVar słowo kluczowe.
  • Dane z 4 bajtów są wyrównane do 4 bajtów nowe packed słowo kluczowe nadpisuje to zachowanie;
  • TDateTime zaczyna się na 1899/12/30 pod D1 zaczęło się w 0000/00/00
  • nowy finalization słowo kluczowe
  • register i stdcall dodano konwencje wywołujące.
  • packed słowo kluczowe.
 138
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-13 17:00:29

Tylko dla uzupełnienia odpowiedzi Johan Sprawdź ten wpis na moim blogu List of changes between versions of Delphi (Since Delphi 5) i doskonała Strona The TIndex która wymienia większość nowych funkcji od delphi 2005 i zasoby o każdej z nich.

 14
Author: RRUZ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:20

Jedi.plik inc używany przez projekt Dephi JEDI eksponuje szereg definicji funkcji. Jeśli twój projekt jest kompatybilny z MPL, możesz nawet użyć go do wykrywania funkcji i zaoszczędzić sobie kłopotów z wymyśleniem tego konkretnego koła.

Na przykład definiuje SUPPORTS_FOR_IN jeśli kompilator obsługuje enumeratory. Można by zawinąć kod enumeratora w IFDEF sprawdzanie tego definiowania zamiast sprawdzania konkretnej wersji kompilatora.

 6
Author: afrazier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-12 15:06:45