Delphi 2018 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

Codegear, переклад: alex_sporik

1. Директива inline - процедури можуть тепер бути марковані як inline. В цьому випадку компілятор просто підставляє тіло такої процедури в точку виклику.

2. Перевантаження операторів (не плутати з методами). Поясню - тепер ви можете написати свій оператор на зразок + або -.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

3. Сlass Helpers - Це класи асоційовані з якихось класом і містить методи які можуть бути використані при роботі з основним класом. Це своєрідний спосіб розширити функціональність базового класу не вдаючись до спадкоємства. Codegear не рекомендують використовувати цей шлях для основного кодування - а тільки як "швидкий" спосіб поліпшити існуючий код.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

Зате тепер ви можете "поліпшити" код якого-небудь компоненту не переписуючи його;)

4. strict private - нарешті то private став приватним по справжньому. Коли ви описуєте методи як приватні вони все одно видно принаймні в рамках одного unit. Тобто це відношення "friend" в термінах C ++. Коли ви робите метод strict private - це означає дійсно приватний метод або властивість для класу і не не бачимо нікому, навіть в рамках unit.

5. strict protected - за образом і подобою п.4 - тільки такі методи будуть видимі самому класу власнику і його спадкоємцям. І ніякого friendship;)

6. Записи з методами. Record тепер може мати не тільки властивості а й методи (конструктори в тому числі), класові властивості, методи, властивості а також вкладені типи.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

7. Астрактние класи - Тепер не тільки методи а й самі класи можуть бути абстрактними.

8. Sealed class - так звані "запечатані класи" - тобто класи від яких не можна породити спадкоємця.

9. Класові константи

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

11. Класові змінні і константи - тепер можна ось так:

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

12. Вкладені класи - зроблені для того щоб концептуально споріднені типи були близько і для того щоб запобігти можливим конфліктам імен.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

13. final methods - віртуальні методи які ви перекриває можуть бути позначені як final, що унеможливить їх подальше перекриття.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

14. sealed classes - тепер класи можуть бути sealed і на противагу class abstract не можуть імеіть спадкоємців.

15. Статичні методи класів. - то що ми все так хотіли. Тепер методи можуть бути викликані без створення екземпляра класу. У такі методи не передається покажчик Self і зрозуміло такі методи не можуть використовувати дані екземпляра класу.

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

16. for-element-in-collection - за заявками VB-шників. Тепер ваш улюблений for each працює і в Дельфи

17. Динамічна ініціалізація масивів

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

18. Директива experimental

19. Перевантаження властивостей класу типу array

Delphi 2007 - новинки мови в порівнянні з delphi 7 (исходники) - програмні продукти

P.S. Заздалегідь вибачаюся за вкрай жахливу якість картинок. Фотографував плівковою камерою з проектора :))