Вышла Delphi XE7. А всего полгода назад выходила Delphi XE6 с которой я так толком и не познакомился, т.к. бОльшую часть времени работал в Delphi XE3 и было немного не до новинок. В случае с XE7 я решил более основательно изучить, что нового появилось в версии и, по возможности, «пересесть» на самую свежую версию Delphi, если это окажется оправданным и более или менее безболезненным в плане переделок/доработок уже существующих проектов, разработанных в Delphi XE3. В этой заметке я решил рассмотреть лишь некоторые нововведения в XE7. Что касается более подробного описания обновлений, то об этом я постараюсь рассказать позднее.
Новый класс TNetEncoding
Класс располагается в модуле System.NetEncoding и предоставляет в наше распоряжение несколько самых распространенных способов кодирования данных, используемых в Сети. Теперь преобразовывать строки для работы в Сети можно так:
uses System.NetEncoding; TNetEncoding.Base64.EncodeString(S); TNetEncoding.Base64.DecodeString(S); TNetEncoding.URL.EncodeString(S); TNetEncoding.URL.DecodeString(S); TNetEncoding.HTML.EncodeString(S); TNetEncoding.HTML.DecodeString(S);
Следует отметить, что представленный класс заменяет собой ранее существующие методы. Ниже представлена таблица соответствия новых методов класса и старых методов использующихся в Delphi XE6 и более ранних версиях:
Класс TNetEncoding | Delphi XE6 и ниже |
TNetEncoding.Base64.EncodeBytesToString | Soap.EncdDecd.EncodeBase64 |
TNetEncoding.Base64.DecodeStringToBytes | Soap.EncdDecd.DecodeBase64 |
TNetEncoding.Base64.EncodeStream | Soap.EncdDecd.EncodeStream |
TNetEncoding.Base64.DecodeStream | Soap.EncdDecd.DecodeStream |
TNetEncoding.Base64.EncodeString | Soap.EncdDecd.EncodeString |
TNetEncoding.Base64.DecodeString | Soap.EncdDecd.DecodeString |
TNetEncoding.HTML.EncodeString | Web.HTTPApp.HTMLEncode |
TNetEncoding.HTML.DecodeString | Web.HTTPApp.HTMLDecode |
TNetEncoding.URL.EncodeString | Web.HTTPApp.HTTPEncode |
TNetEncoding.URL.DecodeString | Web.HTTPApp.HTTPDecode |
Работа с массивами
Улучшена инициализация динамических массивов. Теперь допустимо выполнять такие операции:
var B: array of integer; begin B:=[1,2,3,4,5]; end;
Более того, с динамическими массивами можно работать также как и с обычными строками. Например, следующие операции с массивами в Delphi XE7 не вызовут никаких ошибок:
B := B + [5, 6, 7]; Insert([6, 7, 8], B, 5); //вставка массива [6, 7, 8], в B, начиная с индекса 5 Delete(B, 1, 3); //удаляем 3 элемента, начиная с индекса 1 Concat([1,2,3,4],[5,6,7])
Новые библиотеки
- Обновлена библиотека Zlib до версии 1.2.8.
- В состав Delphi XE7 включена библиотека OmniXML
Новые типы проектов
Если в Delphi XE6 мы выбирали между Firemonkey Desktop Application и Firemonkey Mobile Application, то теперь, в Delphi XE7 есть только один тип проекта — Multi-Device Application. Создав приложение этого типа, мы можем «на лету» в дизайнере менять внешний вид формы и смотреть как будет выглядеть приложение на десктопе или смартфоне:
Здесь же в дизайнере можно выбрать, например, Android-устройство с определенной диагональю экрана:
Кроме этого вновь были расширены возможность FireMonkey. Главное нововведение — новый компонент TBluetoothLE для поддержки Bluetooth. Кроме того был дополнен новыми методами и свойствами компонент TWebBrowser, в частности, была добавлена поддержка кэширования и методы Stop и CaptureBitmap.
[…] я говорил в прошлый раз, в Delphi XE7 появился новый тип проектов под названием […]
В самом не подходящем месте вылазит окошко с рекламой.
[…] уже традиционно, в этом году мы увидели Delphi XE6 и Delphi XE7. С Delphi XE6 я практически не работал, т.к. в тот момент был […]