FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   FMXBridge — Modern FireMonkey UI for Inno Setup (Announcement) (https://fileforums.com/showthread.php?t=107045)

audiofeel 07-04-2026 23:29

FMXBridge — Modern FireMonkey UI for Inno Setup
 
13 Attachment(s)
Attachment 40759

FMXBridge - Modern FireMonkey UI for Inno Setup

I’d like to introduce "FMXBridge" - a DLL bridge between "Inno Setup" and "FireMonkey (FMX)" that lets you build a modern installer interface (Mica / Acrylic / Tabbed, animations, effects, custom controls) while keeping your existing Inno Setup scripting workflow.

What it is
"FMXBridge" is a library that exports a wide set of FMX interfaces and helper utilities for use from an external host. The typical use case is: Inno Setup handles installation logic, while FMXBridge provides the visual UI layer and rich controls.

What it can do
1) Installer-ready windows and forms
  • - Create base forms with different background/system material styles:
  • - "Mica"
  • - "Tabbed"
  • - "Acrylic"
  • - "Blur / Gradient / Image / Blank"
  • - Control dark/light theme, corner rounding, border color, style updates, and property animations.
  • - Use dedicated message forms and splash screens.

2) Large FMX control set
  • - Standard controls: buttons, checkboxes, list/tree controls, memo/edit, progress, menus, toolbars, image lists, etc.
  • - Layout containers: grid/flow/scroll/scaled/buffered layouts.
  • - Extra/custom controls: SVG, HTMLText, GIF, rating bar, marquee, checkbox tree, custom titlebar components.

3) Effects and animations
  • - FMX animations (float/color/rect/gradient/bitmap).
  • - A broad set of visual and transition effects (blur, bloom, sepia, swipe, dissolve, wave, and more).

4) System and utility features
  • - File/folder dialogs (browse/open/save).
  • - Window operations (hide/restore/close), basic file operations, and text read/write/append helpers.
  • - System information (OS/GPU/CPU/RAM, drives, user info, etc.).

5) 2D/3D and optional extensions
  • - 2D shapes + an extended RadiantShapes set.
  • - 3D components (Viewport3D, Camera, Light, primitive/mesh objects, etc.).
  • - Optional "Skia4Delphi" integration (when built with "SKIA").

What this gives you together with Inno Setup
In short: "you keep the reliable Inno Setup installation engine, but get a desktop-grade UI experience".

In practice, this means:
  • - You can hide/minimize the default Inno window and show your own FMX form over the setup flow.
  • - You can build a branded installer UI with custom backgrounds, animated transitions, and non-standard controls.
  • - You can create a multi-step modern wizard UX while preserving standard Inno Setup logic for files, tasks, and sections.
  • - Great fit for launchers/updaters/installers where visual quality and interaction matter.

Technical snapshot
  • - DLL: "FMXBridge.dll"
  • - Architecture: "Win32"
  • - Host: "Inno Setup 7.0.0.0 or Higher"
  • - Compiler: "RAD Studio 13.1"
  • - Project version: "0.5.0.0"

:o

audiofeel 07-04-2026 23:32

Key Differences from Similar Projects
Text caret support
Input controls (e.g., FEdit) include a proper blinking text cursor (caret), improving usability and editing clarity.

No startup white flash
The application initializes without the typical white flicker before rendering the UI.

Dynamic style color modification
Styled controls support runtime color changes, even when colors are predefined in the style resources (colors are overridden directly within the style).

Modern DWM window effects
Integration with advanced Desktop Window Manager effects such as Mica, Acrylic, and Tabbed window styles.

Pseudo-modal dialogs
Dialog windows simulate modal behavior without fully blocking the main thread or message loop.

Localized popup support for FEdit
Popup elements associated with FEdit can be localized independently.

Improved Windows 10 blur window
Enhanced blur implementation without the typical limitations during window dragging or movement.

Proper minimize animation
Window minimize behavior uses native-like animation instead of abrupt disappearance.

Taskbar thumbnail rendering
Custom rendering of window previews (thumbnails) in the taskbar.

audiofeel 07-04-2026 23:37

Project Foundation
Based on existing solutions
The project is built upon a ISFMXFW-based codebase and FMXInno, with substantial refactoring and adaptation to meet specific real-world requirements.

audiofeel 07-04-2026 23:42

7 Attachment(s)
Example Use Cases
Ready-to-use implementation scenarios demonstrating how the components and features can be applied in real projects.

audiofeel 07-04-2026 23:43

Requirements
Inno Setup 7 required
For better or worse, compilation requires Inno Setup 7. No additional tools are necessary.
https://github.com/jrsoftware/issrc/releases

audiofeel 09-04-2026 07:14

1 Attachment(s)
Win!!!

audiofeel 13-04-2026 07:23

2 Attachment(s)
Example Use Cases
Ready-to-use implementation scenarios demonstrating how the components and features can be applied in real projects.
:o

audiofeel 14-04-2026 21:13

3 Attachment(s)
Example Use Cases
Ready-to-use implementation scenarios demonstrating how the components and features can be applied in real projects.
:o

audiofeel 17-04-2026 06:59

3 Attachment(s)
Example Use Cases
Ready-to-use implementation scenarios demonstrating how the components and features can be applied in real projects.

audiofeel 20-04-2026 00:29

3 Attachment(s)
Example Use Cases
Ready-to-use implementation scenarios demonstrating how the components and features can be applied in real projects.

audiofeel 23-04-2026 01:42

Small update
 
Small update

Added component: FUWPTiles
Main features:

Creation and management of a tile container
Full control over layout and sizing
Adding and configuring tile elements
Style, text, and image management
Support for click events and user interaction

Demo example: Example_UWPTiles.iss

New features added:

FComboBox

StyledSettings method
FontSetting method (configuration of font and color for ComboBox items)

Demo example: Example_ComboBox.iss

panker1992 24-04-2026 08:10

2 Attachment(s)
Hey, i created Archiver, have some fun with it, since you also code in Delphi.

Unarc.dll is 64bit

audiofeel 27-04-2026 14:13

A small update with new features and expanded capabilities.
 
A small update with new features and expanded capabilities.

Windows 11 detection feature has been added
Code:

function IsWindows11: Boolean;
  external 'IsWindows11@files:FMXBridge.dll stdcall delayload';

Code:

if IsWindows11 then
begin
  FMXForm.FCreateTabbedForm(WizardForm.Handle, IsWinDark, True);
end
else
begin
  if IsWinDark then
    FMXForm.FCreateBlurForm(WizardForm.Handle, ColorSetOpacity($FF000000, 0.7), True)
  else
    FMXForm.FCreateBlurForm(WizardForm.Handle, ColorSetOpacity($FFFFFFFF, 0.7), True);
end;

if IsWinDark then
  FMXForm.LoadStyleFromFile(ExtractAndLoad('dark.style'), GetWinAccentColor)
else
  FMXForm.LoadStyleFromFile(ExtractAndLoad('light.style'), GetWinAccentColor);

A new FNumberBox component has been added
numeric wrapper with advanced settings:

Basic methods:
Code:

procedure DecimalDigits(FDigits: Integer);
procedure HorzIncrement(FValue: Single);
procedure VertIncrement(FValue: Single);
procedure VerticalMode(FEnabled: Boolean);
procedure Max(FMax: Single);
procedure Min(FMin: Single);
procedure Value(FValue: Single);
procedure ValueType(FFloat: Boolean);

function GetHorzIncrement: Single;
function GetVertIncrement: Single;
function IsVerticalMode: Boolean;
function GetValue: Single;

Extended FUserInfo wrapper
The user interface has been updated: (upon request, account type localization was required)

Code:

type
  FUserInfo = interface(IUnknown)
    '{FF655E8A-2C5A-4DF4-80EB-81CBAFD100C1}'
    function Name: WideString;
    function Domain: WideString;
    function ProfilePath: WideString;
    function UserType: TUserType;
    function IsElevated: Boolean;
  end;

Code:

TUserType = (utUnknown, utUser, utAdmin, utGuest, utSystem);
Code:

function UserTypeToStr(AType: TUserType): string;
begin
  case AType of
    utUser:  Result := 'User';
    utAdmin:  Result := 'Admin';
    utGuest:  Result := 'Guest';
    utSystem: Result := 'System';
  else
    Result := 'Unknown';
  end;
end;

Other changes
Minor internal edits and stabilization of component operation.

audiofeel 05-05-2026 17:04

Small update
 
1 Attachment(s)
Small update

Fixed the display of the window thumbnail in the taskbar on Windows 11 - previously, the image could appear "blurred"/"compressed" due to incorrect calculation of the client area. Added processing adjustments based on the system window boundaries, which eliminates distortion and provides a clearer preview.
Code:

WM_NCCALCSIZE
The application of the accent color to the window title in Windows 11 has been disabled. Previously, the top bar was automatically colored with the system color. Now, the title remains neutral.

Code:

DwmSetWindowAttribute(DWMWA_CAPTION_COLOR)
The loading and display of icons in the FTitleBar has been improved. Previously, when using large icons, they could appear "compressed" and pixelated.
Now, the most appropriate frame size is selected from the .ico file, taking into account the DPI, which results in a clear and correct display without distortion in most cases.
Code:

Factory: IWICImagingFactory;
Decoder: IWICBitmapDecoder;
Frame: IWICBitmapFrameDecode;
Converter: IWICFormatConverter;


audiofeel 11-06-2026 08:22

Small update
 
Small update

1) Added a new FTile interface for working with tiles.
Supported features:
  • - creating and deleting tiles;
  • - positioning and alignment;
  • - size and margin configuration;
  • - background images;
  • - color, borders, and corner radius;
  • - text and font settings;
  • - opacity and rotation;
  • - mouse event handling;
  • - tags and hints support.
This interface had been requested by users for quite some time, but I only recently got around to implementing it.

2) Added mouse capture support for FMX controls.

Code:

procedure TFForm.SetCaptured(FControl: NativeInt);
begin
  if FControl = 0 then
    Exit;

  TControlAccess(Pointer(FControl)).Capture;
end;

Once dragging begins, the control continues to receive mouse events even when the cursor moves outside its bounds.
This makes it possible to move panels, forms, and other UI elements without losing mouse tracking.
For example, you can now create your own draggable pseudo-windows inside the main application window and freely move them around the workspace.

audiofeel 11-06-2026 08:30

CPI v7.0
 
7 Attachment(s)
CPI v7.0
  • - Dark/Light UI Overlay
  • - Customizable Accent Color
  • - Customizable Text and Shadow Colors
  • - Background Music (optional)
  • - Autorun Interface (can be disabled)
  • - Lockscreen (can be disabled)
  • - FMX-based Installer and Uninstaller UI
  • - File Hash Verification
  • - Extraction powered by ISArcEx.dll 0.5.0.0

audiofeel 26-10-2026 19:17

FMXBridge
An Open-Source Project for Inno Setup
Explore new possibilities for modern installer interfaces

Hello everyone!

Some of you may have seen videos demonstrating modern, Liquid-style interfaces and custom installer windows. These demonstrations are part of my own project, FMXBridge, which brings Delphi FireMonkey (FMX) to Inno Setup.

FMXBridge began as an independent project after development of FMXInno was discontinued. The goal is to continue exploring the possibilities of FMX for creating modern, highly customized installer interfaces.

FMXBridge is now OPEN SOURCE!

The project is publicly available on GitHub, including its source code and examples. You can explore the implementation, try the examples, adapt them to your own projects, and help improve the framework.

What can you do with FMXBridge?
  • Create custom installer interfaces using Delphi FireMonkey.
  • Experiment with modern visual styles and custom forms.
  • Explore multimedia and other possibilities beyond the standard Inno Setup wizard.
  • Study the source code and use the available examples as a starting point for your own projects.
  • Report bugs, suggest new features, share ideas, and contribute to development.

Join the development and discussion

FMXBridge is an open project, and feedback from other developers is welcome. If you are interested in the implementation, have ideas for new features, or want to discuss technical details directly with the author, I encourage you to join the project's community discussions on Telegram and the Krinkels forum.

You can find the repository by searching GitHub for FMXBridge by audiofeel.

Explore it. Test it. Build something with it.

The source code is open, the examples are available, and contributions are welcome.

Developer: audiofeel

https://github.com/audiofeel/FMXBridge

audiofeel 26-10-2026 20:40

FMXPixie — HTML/CSS Interfaces for Inno Setup
 
8 Attachment(s)
FMXPixie — HTML/CSS Interfaces for Inno Setup

A DLL library for creating custom installer interfaces with Delphi FMX and the Pixie HTML rendering engine.

[HR]

About FMXPixie

FMXPixie is a DLL library that brings HTML-based user interfaces to Inno Setup.

It allows you to build custom installer layouts using HTML and CSS while keeping installation logic and setup operations in Inno Setup itself.

The library provides a way to create modern, customized installer interfaces without building every visual element as a separate FMX control.

Features
  • HTML content loading with support for a base URL.
  • CSS styling, classes, and dynamic element modification.
  • Element interaction, mouse hover, and click event handling.
  • DOM element selection and manipulation.
  • Zoom and scrolling control.
  • Customizable scrollbars.
  • PNG and PDF export.
  • Additional FMX-based controls, including SVG, tag bar, and Markdown views.

Integration

FMXPixie is designed to work with Inno Setup through a DLL and a Pascal Script wrapper.

The FMX interface runs separately from the standard Inno Setup wizard interface, allowing you to build a custom presentation while using Inno Setup for the installation process.

Requirements

Windows and a compatible Inno Setup environment. Use the appropriate DLL build for your target architecture.

Downloads and Examples

The release package, integration files, and example projects will be published as separate archives in the posts below.

Check the subsequent posts in this thread for available downloads and demonstrations.

Project Status

FMXPixie is an open-source project. The included examples demonstrate different ways to use the library and integrate custom interfaces into Inno Setup.

Feedback and Discussion

Questions, bug reports, suggestions, and examples of your own implementations are welcome in this thread.

When reporting a problem, please include the FMXPixie version, your Windows version, and a description of the issue.

Fak Eid 27-10-2026 09:21

Absolutely amazing work. Open Setup, Yuwiz and Corepack looks clean and renewed. I download from Git Repo but it seems FMXBridge.dll is missing. Can you help?

audiofeel 27-10-2026 09:27

1 Attachment(s)
Quote:

Originally Posted by Fak Eid (Post 511464)
Absolutely amazing work. Open Setup, Yuwiz and Corepack looks clean and renewed. I download from Git Repo but it seems FMXBridge.dll is missing. Can you help?

Unfortunately, or perhaps fortunately, 1.1.1.1 is blocked by some ISPs depending on the region, so I'm not here very often.

FMXBridge has received many updates, but I believe most things can be figured out by studying the examples and the FMXBridgeHandle.iss file.

Fak Eid 28-10-2026 04:28

Hello audiofeel,

Can you please add FNewINI from FMX Inno. Most of my installers are dependent on that and I do not want to modify the whole code.
Can you please also add FExitMsg from FMX Inno or something similar?
the Blur Rectangle example seems different from the YT video. The example doesn't look like Liquid OS style as compared to the YT video. Can you please share the script from YT video.

audiofeel 28-10-2026 04:39

Quote:

Originally Posted by Fak Eid (Post 511472)
Hello audiofeel,

Can you please add FNewINI from FMX Inno. Most of my installers are dependent on that and I do not want to modify the whole code.
Can you please also add FExitMsg from FMX Inno or something similar?
the Blur Rectangle example seems different from the YT video. The example doesn't look like Liquid OS style as compared to the YT video. Can you please share the script from YT video.

As for FExitMsg... You can implement all of this yourself as your own separate component, because everything you need to implement it is already inside Handle.iss. I think that’s a plus.
As for Blur Rectangle, it’s not an example of Liquid Glass; it’s in another example, Example_GlassRectangle.iss.
As for FNewINI, it doesn’t even exist yet.

Fak Eid 28-10-2026 05:15

Sorry, I'm having trouble adding FXitMsg to Handle.iss myself. Seems like I'm doing something wrong. Can you please add these two supports FNewINI and FExitMsg to FMXBridge


All times are GMT -7. The time now is 08:41.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com