FMXBridge.dll для Inno Setup

DLL FMXBridge.dll для Inno Setup 2026.14.11.0

Нет прав для скачивания
Расширена поддержка 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

Вложения

  • 1.jpg
    1.jpg
    12.5 KB · Просмотры: 3
  • 2.jpg
    2.jpg
    12.7 KB · Просмотры: 3
  • 3.jpg
    3.jpg
    19.8 KB · Просмотры: 3
  • 4.jpg
    4.jpg
    15.6 KB · Просмотры: 3
  • 5.jpg
    5.jpg
    10.5 KB · Просмотры: 3
  • 6.png
    6.png
    20.4 KB · Просмотры: 3
  • Like
Реакции: Giperson
Обновление Skia

Доработан механизм подсветки курсором в FSkPaintBox.
Подсветка теперь работает не только на тексте, но и на нарисованных фигурах, линиях, рамках и путях.

Добавлен общий световой эффект, повторяющий геометрию исходных элементов.
Добавлен SetCursorLightShader для управления подсветкой.
Добавлен MaskFilter для создания внешнего свечения текста.

Обновлено демо: добавлены дополнительные элементы оформления и отдельный эффект Glow вокруг заголовка.

Ограничение: самостоятельные FMX-контролы не участвуют в общем проходе.

Вложения

  • nova.png
    nova.png
    73.6 KB · Просмотры: 15
  • Like
Реакции: Salamandra
Добавил в FMXBridge поддержку Windows Toast Notifications.

Теперь можно отправлять обычные уведомления Windows прямо во время работы установщика.
Использование максимально простое:

code_language.pascal:
Toast := InitToastHandle;
Toast.Show('FMXBridge', 'Установка завершена.');

Добавил небольшой пример Example_WindowsToast.iss, на котором можно посмотреть работу уведомлений.
tt.png
Для реализации использован 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

Вложения

  • tb.jpg
    tb.jpg
    40.1 KB · Просмотры: 26
  • Сн9(2).png
    Сн9(2).png
    244.3 KB · Просмотры: 28
  • Like
Реакции: Salamandra
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.
  • Like
Реакции: Salamandra
теперь можно задавать свой курсор даже анимированный
пример

code_language.pascal:
Source: "Files\Cursor\Dark.ani"; Flags: dontcopy
FMXForm.SetCursor(ExtractAndLoad('Dark.ani'));
  • Like
Реакции: Salamandra
Добавлены два новых контрола:

FGlassRectangle - Liquid Glass
Поддерживает:
- размытие фона;
- преломление изображения;
- эффект объёма и оптической толщины;
- дисперсия;
- поддержка скруглённых углов;
- отдельная настройка GlassAmount и BlurAmount.
- стандартные свойства FMX-контрола.

FBlurRectangle - Blur
Отдельный контрол только для размытия содержимого под ним, без эффекта стекла.
Поддерживает:
- настройку силы размытия;
- скруглённые углы;
- стандартные свойства FMX-контрола.
blur.png

Glass.png

  • Like
Реакции: Salamandra и MarsBar
Назад
Сверху