26 июля 2023

Новые редакторы свойств контролов в IDE Delphi 12

    Уже несколько лет пользователям Delphi и C++ Builder через RAD Studio GetIt Package Manager доступен бонус – библиотека Konopka Signature VCL Controls (KSVC). Это библиотека, права на которую Embarcadero купила у Raize Software, имеет большой набор VCL-контролов и дизайнеров их свойств. Авторы Delphi 12, чтобы упростить разработчикам проектирование пользовательского интерфейса, добавили в IDE Delphi некоторые дизайнеры свойств из библиотеки KSVC.

24 июля 2023

Получение списка дочерних контролов в Delphi 12

    В VCL получить список дочерних контролов у контрола можно с использованием цикла по массиву дочерних контролов TWinControl. Так как некоторые контролы сами могут быть контейнерами для контролов, то метод получения списка контролов на всех уровнях вложенности должен вызываться рекурсивно. В Delphi 12 эту задачу облегчили добавлением TControl Enumerator.

21 июля 2023

Новая версия RAD Server использует FastMM 5

    Весной 2020 года состоялся релиз менеджера памяти FastMM 5. Ядро новой версии RAD Server, которая будет выпущена с Delphi 12, использует FastMM5. Переход на FastMM5 позволил увеличить производительность RAD Server. Особенно в сценариях с интенсивной многопоточностью. Средний прирост производительности составил 5%.
    FastMM 5 имеет двойную лицензию: бесплатную (соответствующую GPL v3) и коммерческую. Интересно, на сколько разработчиков компания Embarcadero купила лицензий и платила ли вообще?

19 июля 2023

NativeInt в Delphi 12 стал "слабым" псевдонимом

    В работе с целочисленными типами у компилятора Delphi 12 произошло существенное изменение, которое повлияет на перегрузку процедур/функций и совместимость 32-х и 64-х битного кода. Речь идет о "плавающем" типе NativeInt (NativeUInt). В 32-х битном приложении он эквивалентен типу Integer, а в 64-х битном типу Int64. К тому же размер NativeInt эквивалентен размеру указателя в выбранной платформе (4 или 8).

17 июля 2023

Свойство ShowInTaskbar у TForm в Delphi 12

    В Delphi 12 классу TForm добавили новое свойство ShowInTaskbar. Это свойство определяет, должна ли форма иметь иконку на панели задач Windows. То есть теперь даже не основная форма приложения, у которой свойство ShowInTaskBar имеет значение True, будет иметь на панели задач свою иконку. Это позволит свернуть и восстановить форму через ее иконку на панели задач независимо от состояния основной формы. Для основной формы приложения (Application.MainForm) свойства ShowInTaskBar и Application.MainFormOnTaskBar синхронизируются.

14 июля 2023

Многострочные строковые литералы в Delphi 12

    Продолжим тему строковых литералов в Delphi 12. Кроме длинных строковых литералов в компилятор Delphi 12 добавлена поддержка многострочных строковых литералов. Больше не будет необходимости, как раньше, объединять строки в один строковый литерал используя оператор "+".
Многострочные строковые литералы в Delphi 12

12 июля 2023

Длинные строковые литералы в Delphi 12

    Строки в Delphi, можно сказать, безразмерные. Они могут занимать в памяти до 2GB и вмещать примерно 230 символов для UnicodeString, или даже 231 для AnsiString. Но для обратной совместимости у него есть строковый тип ShortString, который как классическая строка Pascal, ограничена 255 символами. Все эти годы компилятор Delphi обрабатывал строковые литералы как ShortString. Поэтому если программист в коде писал литерал из более чем 255 символов, то получал ошибку "E2056 String literals may have at most 255 elements ".
Delphi 11: [dcc32 Error] E2056 String literals may have at most 255 elements
Что бы избавиться от ошибки, такой строковый литерал необходимо было разделить на несколько отдельных литералов и объединить их, используя оператор "+". Delphi 12 снял это ограничение. Теперь длина строки литералов ограничиваться только ограничениями редактора (4K символов в строке).