FMXInno

DLL FMXInno 2024 May 11

Нет прав для скачивания
  • Improvements in the code.
  • Cleaned up the code a bit and removed duplications.
  • More stable.
  • This build could be more efficient than the previous one.
    • Ensured compatibility with Windows 11 24H2.
  • Added a new class to deal with INI files.
    • Now you can handle even complex INI files more easily.
    • Check the example in the attachment.
  • Added a new class for All-in-One array.
    • Now you can have multiple data types in one array.
    • Supports 11+ data types by default.
    • More data types will be added upon request.
    • Easy to manipulate.
    • Check the example in the attachment.
  • Updated FLogicalDrives class.
    • Added a new property called 'Disk Name'.
    • Check out the 'Example_LogicalDrives.iss'.
  • Updated FXStream.
    • FXPckr can hold InnoSetup's encrypted password.
    • Updated encryption.
    • Fixed minor bugs related to FCreateFXStream.
    • This version doesn't support previous versions.
  • Updated FCheckboxTree class.
    • Now, the OnChange events of checkboxes are handled automatically by the FMXInno internally.
    • To override it and have manual OnChange events, you have to call 'OverrideDefaultOnChangeEvent'. eg: Pg4ChkbxTree.OverrideDefaultOnChangeEvent;
  • Updated WebView2 class.
  • Updated license agreement.

FMXInno hangs on Taskbar

Now we've evidence that the main cause of this issue is the custom font. Generally, I use the following three functions to install custom fonts into the installer:


1. InstallFMXFont
2. DeleteFMXFont
3. InvalidateFMXFont

Instead of using these three functions, try the following functions for custom fonts for now:

1. AddFontResource2
2. RemoveFontResource2

I've updated the examples, so you can check them out to see how to use these functions.

Thanks to @tihiy_don for conducting some tests on this.
Added the FColorComboBox class.
Prevented forms from being resized.
Added the following new functions:

code_language.pascal:
function IsValidVCLColor(const AColor: TColor): Boolean;
function IsValidFMXColor(const AColor: TAlphaColor): Boolean;

function IsLightFMXColor(const AColor: TAlphaColor): Boolean;
function IsLightVCLColor(const AColor: TColor): Boolean;
IsLightFMXColor:
in some cases, 'IsLightFMXColor' is useful for determining the font colors based on the background color or background image color. here's how it can be used:
code_language.pascal:
procedure ClrBxOnChange(Sender: TObject);
var
  CtrlClr: TAlphaColor;
begin
  CtrlClr := AClrBx.GetColor;

  if IsLightFMXColor(CtrlClr) then
    AText.Color(ALBlack)
  else
    AText.Color(ALWhite);

  ARect.FillColor(CtrlClr);
end;
code_language.pascal:
function DesktopImgExist: Boolean;

function GetDesktopImgColorFMX: TAlphaColor;
function GetDesktopSolidColorFMX: TAlphaColor;

function GetImgColorFMX(const Image: UnicodeString): TAlphaColor;
function GetImgPartColorFMX(const Image: UnicodeString;
  const PixelX, PixelY, PixelW, PixelH: Single): TAlphaColor;
00.gif
  • Added two methods to the UWP class that select a specific UWP tile.
  • Now supports FluentBlendedColor option in other forms as well (CustomForm, Dir/Start Form).
  • Added missing method 'SetApplicationIconFromFXStream' to the 'FWinTitleBar' class.
UWP Tile Selection:
code_language.pascal:
procedure TileSelect(ATile: LongInt);
procedure TileSelectEx(ATile: LongInt; MouseOverColor: TAlphaColor);
Example:
code_language.pascal:
UWPTiles.TileSelect(Tile[5]);
UWPTiles.TileSelectEx(Tile[5], ALRed);
How to update:
1. Download the latest update from the first post.
2. Replace the 'FMXInno.dll' and 'FMXInnoHandle.iss' with the provided ones.
* This update will extend from FMXInno Dev [2023-Mar-15].

- Make sure to refer to the last previous changelog to check out the new changes.

Hola everyone,

This is the FMXInno official development library, encompassing all features. my intention with this update is to address known issues so far. therefore, i need your assistance in testing it, especially in this development build. i intend to ensure the correct behavior of forms, including proper scaling and positioning.

1. Note: This is in the development stage and not recommended for use in production.
2. Don't forget to share your feedback and feel free to report any bugs you discover.

Information:

1. Rewrote some core/fundamental code, including forms, etc.:

-- Ensures correct scaling and positioning of forms and FMX objects.
-- All forms will now be centered on the screen.
-- Disabled file size reduction tricks and temporary memory management.
-- Replaced all animations with TAnimator for better performance.
-- Some features (e.g., MinimizeWindowCustomAnimated) have been deprecated due to issues; they can still be called but will have no effect.
-- NewScaller is no longer part of FMXInno, so make sure to remove all related functions (NS, NSS, etc.) from your scripts.
-- The new FForm will be slightly shorter in width/height as the extra frame width is not added to it.
-- When testing with higher DPI values and using .style files, ensure the .style file is HigherDPI-Aware.
-- Some features may not function properly on older systems like Windows 7. Since many developers, including Microsoft, have ceased support for outdated systems, my priority is to ensure compatibility with currently active systems such as Windows 10 and Windows 11.
-- Additionally, there's no guarantee that any issues encountered through virtual machines (VMware, etc.) will be resolved.
-- For 'FCustomPage', use 'Page#.Visible(False)' in 'FMXDesigning' to avoid visibility of all pages at setup startup.

Example:
code_language.pascal:
procedure FMXDesigning;
begin
  {...}
  Page1.FCreate(FMXForm.Handle);
  Page1.Visible(False);
 
  {...}
 
  Page2.FCreate(FMXForm.Handle);
  Page2.Visible(False);
  {...}
end;
2. Rewrote some fluent effects code:
-- Ensures FluentForms react only to system color mode (light/dark) changes.
-- 'SetActiveThemeModeAwareness' will be ignored if the form is minimized.

3. Download the attachment below and perform tests under the following conditions:

OS:
- Windows 11
- Windows 10
- Windows 8 / 8.1 ( Optional )
- Windows 7 ( Optional )

DPI:
- 100%
- 125%
- 150%, etc.

4. Also, test with your own scripts:
-- Replace your current 'FMXInno.dll' and 'FMXInnoHandle.iss' with the provided ones.

5. Some users have reported that it takes a bit of time to compile their scripts. this is because it takes time to read the default 'FMXInnoHandle.iss', which contains declarations of all features. if you have enough experience to deal with it, you can remove unused code from it for your specific script, which may help.

FMXInno Form Types:

1. Normal Form:
-- This is just an FMX layer; you can create any FMX object over it.
-- You can still see through and access every InnoSetup object as this is a layer.

2. Blank Form:
-- A standard FMX form filled with a solid color or an image by default.

3. Fluent Form / Fluent Color Form / Fluent Null (no-color) Form:
-- FMX forms that have enabled Windows Fluent (or Acrylic/Aero) effects by default.

4. Gradient Form:
-- A standard FMX form filled with a gradient color by default.

5. Image Form:
-- An FMX form based on an image (form has the same shape as the image).

6. Background image scrolling Form:
-- An FMX form that has a scrolling image background according to mouse movements.

Scaling:

1. Note that there's no guarantee for any custom scaling value for correct scaling (see first screenshot).
2. Make sure to use only the values supported by your display (see second screenshot).

  • Added a new Fluent Form (FluentBlendedColor).
- This is also a standard Fluent Form, but this new form will blend with the Windows colors (Accent or Desktop Image) along with standard Fluent colors.
- The reason for this new form is for Fluent forms to have a more realistic and modern look.
- Supports both Dark/Light modes and custom color mode.
- Also supports some possible customizations.
- Check out the screenshots to see the differences between standard Fluent forms at standard opacity level (Opacity = 0.56).

  • Added built-in SVG image support.
- Rendering engine: Image32

  • Windows title bar is now more customizable.
- Custom Application Icon instead of the default one.
- Titlebar Color.
- Button Colors.
- Titlebar Background Effects, and so on.

  • SKIA and Blend2D are now optional.

- SKIA and Blend2D are optional from now on because they require external dependencies (sk4d.dll, blend2d_win32.dll).
- You can still have them, but you have to download them manually.

  • Added Image32 - 2D Graphic Library.
- Image32 will take the place of SKIA and Blend2d from now on, especially because it does not require external dependencies and has average performance compared to SKIA and Direct2D.
- Image32 is not enabled by default for public use; for now, it's for my personal use only (because i'm pretty sure no one will use it directly in their projects. )
- More info about Image32: Image32 is a 2D graphics library

  • Added new properties for classes.
  • More bug fixes and improvements.
  • Plugin folder has been cleaned up.
- Removed unwanted plugins from the directory.
- Re-compiled all the plugins to make sure everything is up to date.

  • All the examples have been revised.
- Now the default compression will be 'lzma2/ultra64'.
  • Also, added new examples.
  • Extended support for Windows 11 24H2.

code_language.pascal:
function FCreateFluentBlendedColor(WParent: HWND; DarkTheme, NoBorder: Boolean;
  Opacity: Single; BrightnessPct: Byte; BlendColorMode: TBlendColorMode): HWND;

function FCreateFluentBlendedColorEx(WParent: HWND; DarkTheme, NoBorder: Boolean;
  Opacity: Single; BrightnessPct: Byte; BlendColorMode: TBlendColorMode;
  BlendColorLvl: Integer): HWND;

function FCreateFluentBlendedColorEx2(WParent: HWND; VCLColor: TColor;
  DarkTheme, NoBorder: Boolean; Opacity: Single; BrightnessPct: Byte;
  BlendColorLvl: Integer): HWND;
0.jpg
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
  • Merged FMXInno Dev into this.
  • Updated ISArcEx to the latest version.
  • Made some improvements and bug fixes.
  • This update addresses most of the previous issues.
  • Added Radiant Shapes.
  • Introduced new properties to classes.
  • WinTitleBar will now display the application icon by default.
  • Not compressed by default.
  • No Exe compressor or file reduction tricks were used.
  • Implemented new functions.
1. Integrated all updates up to this point.
2. Removed FMXInno's memory (RAM) truncation.
3. Fixed issues with invalid handles and owners.
4. Resolved some memory leaks.
5. Addressed previously encountered issues.
6. Implemented various improvements.
7. Updated all examples to Inno Setup 6.2.2.
8. Compiled with RadStudio 12 Athens + Patch 01.
9. This build is free from false positive trojans.
What's new:
1. Added FMXInno WebView2 custom class.
2. Updated HTML text (updated _HTML-Syntax.txt).
3. Updated ISArcExCleanUp.
4. Added a simple tool (Installer Template Generator).
5. Addressed known issues.
6. Quality fixes and improvements.
1. FMXInno WebView2:

1. Support for the latest Windows 10 and Windows 11 only.

-- This requires the WebView2 Runtime package.
-- Alternatively, download it manually: Microsoft Edge WebView2

2. Support for HTML 5.

3. FWebview is always on top of all other controls, just like the FVideoPlayer.
Therefore, it's better to create this on an FCustomFluentWindow in real use.
2. Installer Template Generator:
1. A simple tool to generate installer templates.
- The script will include all the fundamental functions that the installer requires.
1 (1).png
2 (1).png
3 (1).png
4 (1).png
* Added new functions:
-- function wGetRecycleBinInfo(ARootPath: WideString; var TotalSizeMB: Extended; var FileCount: Integer): Boolean;
-- function wCopyToClipboard(const AStr: WideString): Boolean;
-- function wPasteFromClipboard: WideString;

* Updated FForm class.

* Updated FluentApi (Internal + External).
-- Make sure to update your current scripts as follows:

function EnableFluent(const WinHandle: HWND; DarkTheme, NoBorders, NoTitleBar: Boolean; Opacity: Single; BrightnessPct: Byte): Integer;
external 'EnableFluent@{tmp}\FluentApi.dll stdcall uninstallonly delayload';

to

function EnableFluent(const WinHandle: HWND; DarkTheme, NoBorders, NoTitleBar: Boolean; Opacity: Single; BrightnessPct: Byte): Integer;
external 'faC1222296@{tmp}\FluentApi.dll stdcall uninstallonly delayload';

* Updated ISArcEx (Internal + External).
-- Added a new method:
> ISArcExIsSuspended.

-- The following methods have been renamed and updated:
> Suspend/Resume Proc, ChangeLanguage.

* Updated Botva2-like classes:
-- FPictureButton2, FPictureVisiblePart, FPictureProgressBar, and FPictureTrackBar.

* Some improvements and bug fixes.
1. Added new classes:
- FTreeView
- FTreeViewItem
- FMenuBar
- FMenuBarItem

2. FCheckboxTree - Removed the following properties:
- procedure Selectable(FEnable: Boolean)
- procedure RemoveBckgnd

3. Added some new functions.

4. Some improvements:
- TitleBar
- FForm

5. Bug Fixing:
- If someone experiences flickering when switching between dark mode and light mode,
it has now been fixed.
- Added some missing properties.
- Made some improvements.

Вложения

  • 221.4 KB Просмотры: 33
  • 68.6 KB Просмотры: 32
  • 70.4 KB Просмотры: 30
Добавлены новые классы:
Standard:
- TListBox
Layout:
- TGridLayout
- TFlowLayout
- TScaledLayout
Colors:
- TComboColorBox

Вложения

Сверху