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 22: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 22: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 22: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 22: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 22: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 06:14

1 Attachment(s)
Win!!!

audiofeel 13-04-2026 06: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 20: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 05: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 19-04-2026 23: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 00: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 07: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 13: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 16: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;



All times are GMT -7. The time now is 03:22.

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