26 мая 2020 года состоялся релиз RAD Studio 10.4 Sydney. Получается, что 26 мая вышла 26 версия Delphi (Совпадение? Не думаю). Двадцать шестая — это, если считать без версий типа Turbo, Community Edition и прочих. Событие, безусловно, важное для многих разработчиков, использующих в своей повседневной работе Delphi. Итак, чем же нас решили порадовать разработчики из Idera/Embarcadero на этот раз.
Судя по страничке «What’s New» нововведений не так уж и много, хотя, говорят, исправлено более 700 ошибок. Поверим разработчикам на слово. В целях, так сказать, «пощупать» что и как решил попросить ключик для Trial-версии.
Минимальная установка Delphi займет примерно 3,4 Гб на жестком диске. Сама установка заняла, по моим ощущениям, порядка 10-15 минут. Заставка у Delphi 10.4 теперь вот такая:
Да простят меня и разработчики Delphi и дизайнеры и все, кто причастен к этой заставке, но, первая моя мысль от увиденного была такой: «Delphi навсегда останется в наших сердцах!»…ну, то есть, несмотря на яркий цвет, от заставки повеяло какой-то замогильной фигнёй. Ей-богу, лучше бы Сидней показали. Но это мелочи, с которыми в течение следующих шести месяцев все мы свыкнемся. Посмотрим на новинки из «What’s New»
Custom Managed Records
Среди основных нововведения языка значится «Custom Managed Records«. Теперь тип record в Delphi поддерживает пользовательские инициализацию и финализацию. Мы можем объявлять записи с пользовательским кодом инициализации и финализации независимо от типа данных полей. Это достигается путем добавления новых операторов к record. Пример использования пользовательских операторов в record можно посмотреть здесь.
Unified Memory Management
Управление памятью в Delphi теперь унифицировано для всех поддерживаемых платформ — мобильных, настольных и серверных с использованием классической реализации управления памятью объектов. Ок, пусть будет.
VCL Style Changes for High DPI
В Delphi 10.4 переработан механизм работы со стилями. Теперь, как обещаются разработчики, элементы управления будут выглядеть одинаково на мониторах с любым разрешением.
VCL Per Control Styling
Разработчики VCL теперь могут использовать несколько стилей VCL в разных формах в одном приложении или даже в разных визуальных элементах управления на одной форме. Помимо обеспечения большей гибкости при оформлении, это также позволяет использовать сторонние элементы без стилей в стилизованном приложении VCL.
Вот это, на мой взгляд, сильно спорное нововведение. Гибкость, оно конечно, всегда хорошо, но тут бы не перегнуть с этой самой гибкостью. Не знаю как Вы, а я сторонник того, что одно приложение = один стиль оформления всего.
Новые компоненты VCL
Заявлено, по крайней мере о трех новых компонентах: TEdgeBrowser, TTitleBarPanel и TImageCollection.
TEdgeBrowser — компонент для поддержки работы с браузером Microsoft Edge. Отлично, что сделали такой компонент.
TTitleBarPanel — позволяет управлять заголовком окна. Довольно интересный, на мой взгляд, компонент. На скриншотах (с официальной вики)ниже показаны возможности такого компонента. Так компонент выглядит в Design-Time
А вот так будет выглядеть заголовок окна запущенного приложения:
Думаю, что компонент и интересный и полезный. Стоит посмотреть на него чуть по-подробнее в одной из следующих статей блога.
TImageCollection — это новый компонент TVirtualImage, который поддерживает несколько разрешений и масштабирование DPI, что позволяет получить высококачественное масштабирование и отображение изображений путем замены классического компонента TImage.
Улучшения в RTL
В Delphi 10.4 внесены многочисленные улучшения в части производительности и стабильности библиотеки Parallel Programming Library (PPL).
Внесены некоторые улучшения и в библиотеку доступа к базам данных FireDAC, а также обновлены драйверы для FireBird, PostgreSQL и SQLite. Для базы данных SQLite предлагается возможность выбирать между статическим или динамическим связыванием.
Библиотеки HTTP и REST расширены дополнительными функциями HTTPS.
Улучшения производительности и возможностей LiveBindings в Delphi 10.4 для приложений VCL и FireMonkey. В основном уделялось внимание производительности. В результате некоторые операции LiveBindings, по словам разработчиков, выполняются на порядок быстрее.
Более подробно про улучшения в RTL и RTTI можно узнать здесь.
FireMonkey
Само собой обновилась и огненная обезьяна в Delphi 10.4. Теперь разработчики, использующие платформу FireMonkey, могут ориентироваться на последние версии поддерживаемых операционных систем.
Итого
В целом, не могу сказать, что новая версия Delphi фонтанирует нововведениями, но, между тем, на некоторые новые возможность в Delphi 10.4 хочется взглянуть. Например, на работу с TTitleBarPanel, HTTP Client Library и т.д. Так же, на страничке про новые фичи и исправленные баги заинтересовал момент, касающийся работы с JSON. А именно, вот эта фраза: «JSON reading optimization: TJSONReader is now 50% faster.» Что ж, буквально недавно возвращался к работе с JSON (правда в Lazarus) и, видимо, придётся повторить тест на чтение.
На счет TEdgeBrowser. Там прежде чем говорить спасибо думает мозгами что сейчас идет разработка Microsoft Edge на хромиум ядре и никакого отношения к старому Edge кроме названия не имеет тобишь Embarcadero делая этот компонент зря потратила время так как старыфй Edge никакого отношения к новому кроме названия не имеет и при установке нового старый отключается ав будущем новый будет поставляться вместе с системой и старый будет отключен а возможно даже и удален вовсе. Лучше бы Ebarcadero добавили поддержку Windows 10 Game Bar. А то уже как 2 или 3 года как Game Bar появился в 10 а приложения на Delphi… Подробнее »
А не 27я ли версия?
Хм…
Не знаю как насчет за могильной… а вот то, что заставка тянет на старый баян: Центурион, Рим пал, это точно!