Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Добавил в 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-контрола.
![]()
![]()
Разделение x86 / x64
В этом обновлении разделил сборки FMXBridge.dll для двух архитектур:
- FMXBridge_x86.dll - Win32
- FMXBridge_x64.dll - Win64
Теперь Inno Setup просто выбирает нужную сборку в зависимости от архитектуры:
Код:[Setup] SetupArchitecture=x64 [Files] #if SetupSetting("SetupArchitecture") == "x64" Source: "Modules\sk4d_x64.dll"; DestName: "sk4d.dll"; Flags: dontcopy Source: "Modules\FMXBridge_x64.dll"; DestName: "FMXBridge.dll"; Flags: dontcopy #else Source: "Modules\sk4d_x86.dll"; DestName: "sk4d.dll"; Flags: dontcopy Source: "Modules\FMXBridge_x86.dll"; DestName: "FMXBridge.dll"; Flags: dontcopy #endif
В связи с разделением по архитектурам в этой версии пришлось отказаться от статической линковки BASS. Теперь BASS находится внутри FMXBridge.dll и при необходимости извлекается во временную папку.
Также обновлено:
BASS - 2.4.18.23
Skia4Delphi - 7.3.0 (Skia 151.0.0)
Обновление FBASS Player
В компонент FBASS Player добавлена встроенная визуализация спектра воспроизводимого аудио.
Возможности:
1 - Анализ выполняется на основе BASS_DATA_FFT4096.
2 - Используется логарифмическое распределение частот.
3 - Уровень сигнала преобразуется в децибелы с последующей нормализацией.
4 - Рабочий диапазон спектра ограничен приблизительно 50–18000 Гц.
5 - По умолчанию используется 16 полос.
6 - Отображение выполняется без искусственного сглаживания.
7 - Добавлена возможность настройки внешнего вида спектра:
code_language.pascal:procedure SetSpectrum(FParent: TFmxObject; FLeft, FTop, FHeight: Single); procedure BarColor(Value: TAlphaColor); procedure BarWidth(Value: Single); procedure BarSpacing(Value: Single); procedure BarRadius(Value: Single);
Спектроанализатор является частью FBASS Player
![]()