Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Расширена поддержка Windows Toast Notifications
Теперь доступны четыре метода:
- SetAppInfo - задаёт имя приложения и его иконку для уведомлений.
- Show - обычное текстовое уведомление с заголовком и сообщением.
- ShowLogo - добавляет логотип приложения непосредственно в уведомление (AppLogoOverride).
- ShowImage - добавляет большое изображение в уведомление (Hero).
Также добавлена обработка локальных путей к изображениям: проверка существования файла и преобразование пути в URI, необходимый для Toast.
Пример: Example_WindowsToast.iss.
FThumbButtons - индикатор прогресса на панели задач Windows
Расширил существующий FThumbButtons, добавив поддержку индикатора прогресса на кнопке приложения в панели задач Windows.
Добавлены методы:
- SetProgressState - установка состояния индикатора.
- SetProgressValue - установка текущего значения и максимума.
- ClearProgress - очистка индикатора.
Поддерживаются все стандартные состояния Windows:
- Normal - обычный прогресс.
- Indeterminate - неопределённый прогресс.
- Error - ошибка.
- Paused - приостановка.
- NoProgress - скрытие индикатора.
Пример: Example_TaskbarProgress.iss.
FTrayIcon - системный трей Windows
Основные возможности:
- Создание и удаление иконок в системном трее.
- Поддержка нескольких независимых иконок.
- Загрузка и изменение иконки из ICO-файла.
- Настройка всплывающей подсказки.
- Обработка левого, двойного и правого щелчка мыши.
- Автоматическое восстановление иконок после перезапуска Explorer.
Контекстное меню:
- Добавлять пункты меню и разделители.
- Изменять текст пунктов.
- Включать и отключать отдельные пункты.
- Устанавливать отметки Checked.
- Получать индекс выбранного пункта через callback.
Пример: Example_TrayIcon.iss.
FRatingBar - выбор формы рейтинга
Добавил возможность выбирать форму элементов рейтинга:
Star - звёзды.
Heart - сердечки.
Diamond - ромбы.
Выбор доступен непосредственно из Inno Setup через новый enum TRatingBarShape и метод Shape().
Пример: Example_RatingBar.iss.
Другие небольшие изменения Api
Обновление Skia
Доработан механизм подсветки курсором в FSkPaintBox.
Подсветка теперь работает не только на тексте, но и на нарисованных фигурах, линиях, рамках и путях.
Добавлен общий световой эффект, повторяющий геометрию исходных элементов.
Добавлен SetCursorLightShader для управления подсветкой.
Добавлен MaskFilter для создания внешнего свечения текста.
Обновлено демо: добавлены дополнительные элементы оформления и отдельный эффект Glow вокруг заголовка.
Ограничение: самостоятельные FMX-контролы не участвуют в общем проходе.
Добавил в FMXBridge поддержку Windows Toast Notifications.
Теперь можно отправлять обычные уведомления Windows прямо во время работы установщика.
Использование максимально простое:
code_language.pascal:Toast := InitToastHandle; Toast.Show('FMXBridge', 'Установка завершена.');
Добавил небольшой пример Example_WindowsToast.iss, на котором можно посмотреть работу уведомлений.
Для реализации использован WindowsNotificationManager от HemulGM.![]()
Пока это только простые уведомления с заголовком и текстом.
Skia Runtime Shader - управление Uniform-параметрами
В FSkAnimatedPaintBox добавлена поддержка управления параметрами SkSL Runtime Shader непосредственно из Pascal Script.
1. Float Uniforms
Добавлены методы для передачи значений:
- SetUniformFloat
- SetUniformFloat2
- SetUniformFloat3
- SetUniformFloat4
Позволяют изменять скалярные и векторные параметры шейдера без его повторной загрузки.
2. Integer Uniforms
Добавлены:
- SetUniformInt
- SetUniformInt2
- SetUniformInt3
- SetUniformInt4
Теперь можно передавать целочисленные параметры: режимы работы, флаги эффектов, размеры сеток и другие настройки.
3. Системные Uniforms
Исправлена автоматическая передача параметров:
- iResolution - фактический размер области отрисовки.
- iTime - время анимации.
- iTimeDelta - интервал между кадрами.
- iMouse - координаты мыши и состояние левой кнопки.
Эти параметры обновляются самим компонентом. Ручное изменение через публичные SetUniform-методы запрещено.
4. Пакетное обновление параметров
Добавлены BeginUniformUpdate и EndUniformUpdate.
Позволяют изменить сразу несколько Uniform-параметров и выполнить один запрос перерисовки после завершения пакета. Поддерживаются вложенные блоки обновления.
Изменение параметров вызывает перерисовку даже при остановленной анимации - запускать её повторно не требуется.
5. Проверка параметров
SetUniform-методы проверяют наличие Uniform, соответствие типа и размерность. При неизвестном имени или несовпадении типа возвращается False. Массивы этими методами не поддерживаются.
Изменённые файлы
Examples/Skia/Modules/FMXSkiaHandle.iss
Файл шейдера: Files/Shaders/runtime-uniforms.sksl, installer-scene.sksl
Демонстрирует применение новых возможностей в установочном интерфейсе. Реализован пример волновой индикатор, заполнение которого связано с реальным прогрессом Inno Setup.
FMXBridge — кнопки на миниатюре панели задач
Добавил новый компонент FThumbButtons.
Теперь можно добавлять собственные кнопки прямо в миниатюру окна на панели задач Windows и назначать им любые действия.
Поддерживаются: До 7 кнопок.
Свои иконки или глифы из шрифтов.
Подсказки для кнопок.
Управление видимостью и доступностью.
Обработка нажатий с передачей индекса кнопки в Inno Setup.
Всё настраивается из Pascal Script. Можно сделать управление плеером, переключение страниц или любые другие действия.
В демо показаны возможности компонента и работа с BASSPlayer.
Пример: Example_BASSPlayer.iss. Example_ThumbButtons.iss
1. Массовое изменение сигнатур
Практически во ВСЕХ интерфейсах метод создания переделан:
Т.е. раньше FCreate возвращал Handle/..., теперь просто инициализирует объект, а Handle берётся через .Handle.
2. Удалённые типы-обёртки (заменены на TFmxObject)
Убраны алиасы (все были NativeInt):
IMenuItem, IMainMenu, ISearchBox, IListBoxGroupFooter, IListBoxGroupHeader, IListBoxHeader, IListBoxItem, ITreeViewItem, ICamera, IControl3D, ILight, IDummy, IColorMaterialSource, ITextureMaterialSource, ILightMaterialSource, TArrayOfHWND.
Остались только: TFmxObject, IImageList, ITabItem, IMaterialSource.
3. Что ДОБАВЛЕНО (новые интерфейсы и обёртки)
FAnimation - базовый интерфейс анимаций + InitAnimation (обёртка над TAnimation).
FSpinner - новый контрол + enum TSpinnerKind (Win11, Arcs, DoubleBounce, FlipPlane, Pulse, ArcsRing, Ring, ThreeDots, Wave, BallClipRotate…) + InitSpinnerHandle.
FMediaPlayer (переименован из FVideoPlayer) + InitMediaPlayer.
FForm: методы ChangeDarkMode, OnShow, OnActivate, OnDeactivate.
FMsgForm: методы Caption, StartWindowDrag.
FLockScreen: метод ShowDelay.
FSVGImage: SetFocus, CanFocus, LoadFromText (замена SVGText).
FMemo: события OnChange, OnChangeTracking.
FWinTitleBar: переименования - ChangeTheme>ChangeDarkMode, ExitBtnEnabled>CloseBtnEnabled, ExitBtnOnClick>CloseBtnOnClick, GetObjectExitBtn>GetObjectCloseBtn.
Enum TCanvasQuality: значения переименованы - cqSystemDefault>SystemDefault и т.д.
4. Что УДАЛЕНО
FMacTitleBar и InitMacTitleBarHandle - выпилены полностью.
FVideoPlayer - заменён на FMediaPlayer.
FWinTitleBar сильно урезан: удалены Cursor, SetClipParent/Children, BringToFront, SendToBack, Icon, IconVisible, Title, TitleVisible, TitleFontSetting, TitleTextSetting, MinBtnVisible, MinBtnEnabled, GetLeft, GetTop, GetWidth, GetObjectMinBtn, GetObject.
FLockScreen урезан: удалены AutoActivate, AutoActivateEnabled, BackPicture, BackStroke*, BackOpacity, BackText*, BackHandle.
FSVGImage: удалены MarginWrapMode, WrapMode, FixedColor, SaveToFile, BitmapZoom, GrayScale, DisableInterpolation, GetSVGText.
FForm / FMsgForm: удалён ChangeWindowTheme (заменён на ChangeDarkMode).
Dialogs: удалена BrowseLegacyDialog; в BrowseDialog / OpenDialog / SaveDialog убран параметр Owner: HWND.
5. Багфиксы
FTimer.Interval: было TAlphaColor > стало Cardinal. Это исправление очевидного бага (интервал в мс не может быть цветом).
Изменения затрагивают внешний API и сигнатуры интерфейсов, поэтому совместимость со старым кодом существенно нарушена: код, использующий изменённые методы, типы и GUID, потребуется адаптировать.
Оптимизирован PICSHOW: снижена фоновая нагрузка и улучшена работа с изображениями высокого разрешения.
WebP
Добавил поддержку WebP, в том числе анимированных WebP.
Теперь для этого Skia не нужна - декодирование и отображение WebP сделаны отдельно в FMXBridge.
Почему отдельная обёртка: обычный TImage и так нормально работает с изображениями, а добавление туда анимации и связанных с ней настроек только запутало бы пользователя. Поэтому для анимированных WebP сделал отдельную обёртку FWebPImage которая умеет загружать WebP, проигрывать и ставить анимацию на паузу, останавливать её, переключать кадры вручную, получать количество кадров, их длительность и количество циклов, а также отслеживать смену кадра.
Плюс у него есть обычные свойства TImage: размер, положение, Align, Margins, Padding, Opacity, поворот, Visible, HitTest и т. д.
Важно: если в проекте включён Skia, FWebPImage использовать не получится. Для него нужен обычный FMX-режим без Skia.
теперь можно задавать свой курсор даже анимированный
пример
code_language.pascal:Source: "Files\Cursor\Dark.ani"; Flags: dontcopy FMXForm.SetCursor(ExtractAndLoad('Dark.ani'));
Добавлены два новых контрола:
FGlassRectangle - Liquid Glass
Поддерживает:
- размытие фона;
- преломление изображения;
- эффект объёма и оптической толщины;
- дисперсия;
- поддержка скруглённых углов;
- отдельная настройка GlassAmount и BlurAmount.
- стандартные свойства FMX-контрола.
FBlurRectangle - Blur
Отдельный контрол только для размытия содержимого под ним, без эффекта стекла.
Поддерживает:
- настройку силы размытия;
- скруглённые углы;
- стандартные свойства FMX-контрола.
![]()
![]()