Главные новинки
FAnimation - новый универсальный анимационный интерфейс
Добавлена полноценная обёртка над FMX-анимацией, которую теперь можно использовать не только для визуальных эффектов, но и как анимационный таймер для UI-задач. Через Duration, Delay, Loop, AutoReverse, Inverse, Pause, AnimationType и Interpolation можно полностью управлять циклом выполнения, а через OnProcess получать события обработки и через GetCurrentTime / GetNormalizedTime - текущее время и нормализованный прогресс.
Начиная с RAD Studio Florence 13.0 FireMonkey использует новый Display Link Service как центральный механизм для анимаций вместо прежнего таймерного механизма. Обновления анимаций синхронизируются с фактической частотой обновления дисплея и VSync, поэтому UI-анимации обрабатываются значительно естественнее, чем обычный TTimer.
Поэтому FAnimation можно использовать, например, как основу для:
плавных UI-анимаций;
marquee/spinner/progress-эффектов;
покадрового обновления визуальных элементов;
периодических UI-операций через Loop + OnProcess.
При этом это не замена обычному системному таймеру вообще: FAnimation предназначен прежде всего для задач, связанных с UI и кадровым обновлением. Его главное преимущество - работа в ритме FMX-анимационного цикла, а не независимый Interval-таймер.
FSpinner - готовая обёртка для spinner
Добавлен интерфейс для создания и управления индикатором ожидания без необходимости напрямую работать с FMX-компонентом.
Через него сразу доступны:
Kind, Color, Speed, Start, Stop, Opacity, Visible, Enabled, позиционирование, Align, Margins, Padding, Tag, HitTest, события мыши и Handle.
То есть spinner теперь выступает как самостоятельный UI-компонент DLL API: его можно создать на любом TFmxObject, настроить внешне и запустить/остановить без доступа клиента к внутреннему классу.
Новый FWinTitleBar - значительно более близкая к системной модель поведения
Главное изменение здесь не только внешний вид, а поведение title bar.
Новый title bar теперь получает реальные данные окна и ведёт себя значительно ближе к стандартному caption bar:
получает реальный Caption формы;
извлекает и отображает иконку исходного HWND;
учитывает возможности окна - наличие Minimize, Maximize и Close;
рассчитывает положение кнопок на основании caption metrics;
использует системные WM_SYSCOMMAND для Minimize, Maximize, Restore;
поддерживает двойной клик по области заголовка для переключения Maximize/Restore;
использует стандартную модель WM_NCLBUTTONDOWN / HTCAPTION для перетаскивания окна;
имеет отдельное поведение для Close;
поддерживает тёмную и светлую тему;
на Windows 11 использует Segoe Fluent Icons, а на старых версиях Windows - Segoe MDL2 Assets;
отображает корректную иконку окна через получение HICON из самого HWND.