Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 16-08-2024, 22:33
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 688
Thanks: 481
Thanked 2,547 Times in 561 Posts
BLACKFIRE69 is on a distinguished road
Arrow FMXInno - Updates

FMXInno - Updates


* Let me know if you would like to have the FCustomMemo in future updates. it's an advanced Memo component i used previously in the Avalon Installer, and it originally comes with FMXInno v1.0.0.3.


Features:
Quote:
1. Fully customizable overall.

2. Ability to customize individual items/lines.

3. Each item/line can be either text or any object (Rectangle, Image, FMXInno Blueprint, etc.) you prefer.

4. Each line's height and width can be adjusted individually.

5. Supports navigation, scrollbars, and more.

.
Attached Images
File Type: png 2.png (49.4 KB, 118 views)
File Type: png 1.png (57.9 KB, 119 views)
File Type: png 0.png (43.9 KB, 119 views)
Reply With Quote
The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post:
audiofeel (17-08-2024), hitman797 (31-10-2024), JIEXA MEDVED (17-08-2024), Tihiy_Don (18-08-2024)
Sponsored Links
  #2  
Old 05-08-2024, 07:17
Fak Eid Fak Eid is offline
Registered User
 
Join Date: Jun 2023
Location: Mars
Posts: 147
Thanks: 98
Thanked 152 Times in 54 Posts
Fak Eid is on a distinguished road
Custom Slideshow and Generic WebView Example

Real life examples are in Epic Games Installer

Generic WebView Example
You can reuse the attached WebView.html like this:

Code:
[Files]
Source: "Files\Web\WebView.html"; DestDir: "{tmp}"; Flags: dontcopy;
Code:
procedure LoadHtmlContent(Width, Height: Integer; SrcURL: WideString);
var
  sHtml, VideoId: Widestring;
  sTemplate: AnsiString;
  Sl: TStringList;
begin
  VideoId := Copy(SrcURL, Pos('v=', SrcURL) + 2, 11);
  LoadStringFromFile(ExtractAndLoad('WebView.html'), sTemplate);
  sHtml := Format(sTemplate, [Width, Height, VideoId]);

  Sl := TStringList.Create;
  try
    Sl.Text := sHtml;
    Sl.SaveToFile(ExpandConstant('{tmp}\WebView.html'));
  finally
    Sl.Free;
  end;
end;
Code:
LoadHtmlContent(680, 384, 'https://www.youtube.com/ watch?v=hS7ZY7oLCS4&ab_channel=RANDOMGAMERTAGS');

TrailerRect.FCreate(FMXForm.Handle);
TrailerRect.SetBounds(250, 145, 680, 383);
TrailerRect.Opacity(0);
TrailerRect.HitTest(False);

TrailerWebView.FCreate(FMXForm.Handle, TrailerRect.Handle, ExpandConstant('{tmp}\WebView.html'));
TrailerWebView.Start;
Custom Image Slideshow
The need for this was because both type of Image Slideshow were dependent on FMXForm and couldn't be overlayed with a different component. Hence, I had to go with creating my own.

Code:
j: Integer;
GameImage: FImage;
SlideShowTimer: FTimer;
Code:
GameImage.FCreate(FMXForm.Handle);
GameImage.SetBounds(250, 145, 680, 383);
GameImage.LoadPicture(ExtractAndLoad('Image0.jpg'), iwStretch);
GameImage.Opacity(1);

SlideShowTimer.FCreate(GameImage.Handle, True);
SlideShowTimer.Interval(100);
SlideShowTimer.OnTimer(@ChangeSlide);
Code:
procedure ChangeSlide(Sender: TObject);
var
  Time: Cardinal;
  SlideOpacity: Single;
begin
  if GameImage.GetOpacity = 1 then Slider := False
  else if GameImage.GetOpacity = 0 then begin
    GameImage.LoadPicture(ExtractAndLoad('Image' + IntToStr(j) +'.jpg'), iwStretch);
    j := j+1;
    Slider := True;
  end;

  if (Slider = False) and not (GameImage.GetOpacity = 0) then SlideOpacity := GameImage.GetOpacity - 0.05
  else if (Slider = True) and not(GameImage.GetOpacity = 1) then SlideOpacity := GameImage.GetOpacity + 0.05;
  GameImage.Opacity(SlideOpacity);

  #ifdef NumberOfSlides
  if j = {#NumberOfSlides} then j := 0;
  #endif
end;
What is NumberOfSlides?
Settings.ini has a parameter as Number of Slides where you need to define the number of Image Files from the folder, to be included in the slideshow.
Attached Images
File Type: gif Fak Eid SlideShow.gif (1.92 MB, 180 views)
Attached Files
File Type: rar WebView.rar (620 Bytes, 16 views)

Last edited by Fak Eid; 05-08-2024 at 07:59.
Reply With Quote
  #3  
Old 16-08-2024, 23:21
Fak Eid Fak Eid is offline
Registered User
 
Join Date: Jun 2023
Location: Mars
Posts: 147
Thanks: 98
Thanked 152 Times in 54 Posts
Fak Eid is on a distinguished road
I wouldn't mind.. It is always more convenient to customize. I already have some ideas. My new work can wait to have it. Can you also include these in the update too?
Reply With Quote
  #4  
Old 17-08-2024, 01:00
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 688
Thanks: 481
Thanked 2,547 Times in 561 Posts
BLACKFIRE69 is on a distinguished road
Quote:
Originally Posted by Fak Eid View Post
Can you also include these in the update too?

FireMonkey is a different story.

while working with FireMonkey (FMX), especially when integrating with native components like WebView2, there're certain limitations due to how FMX and the underlying platform handle windows and rendering. FMX is designed to be cross-platform, with a focus on vector-based, hardware-accelerated graphics, while traditional controls like WebView2 rely on native Windows-specific window handles (HWND) to be embedded.

to embed WebView2 within a FireMonkey form, we use 'FMXForm.Handle', which provides the necessary window handle (HWND) for WebView2 to render its content. this works because a form in FMX has an associated native window, and we can retrieve its handle.

however, FMX objects like 'TRectangle', 'TPanel', and other 'TFMXObject' descendants don't have an underlying native window (HWND). they're drawn directly onto the GPU and managed by the FireMonkey rendering engine, which makes them platform-agnostic but without any native window handle. since WebView2 requires an actual window handle to render its content, it isn't possible to use a 'TFMXObject' like 'TRectangle' as the parent window for WebView2.

in essence, FireMonkey objects and native components like WebView2 operate in fundamentally different ways. while you can embed WebView2 inside a FireMonkey form by setting the parent window to the form handle, using a 'TFMXObject' as a parent isn't feasible due to the lack of a native window handle in FireMonkey controls.


not only the ones you mentioned, but i also want to add more. however, it isn’t possible due to compatibility limitations.


.
Attached Images
File Type: png 0.png (5.8 KB, 534 views)
Reply With Quote
The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post:
audiofeel (17-08-2024), Fak Eid (19-08-2024), hitman797 (17-08-2024), ScOOt3r (17-08-2024)
  #5  
Old 16-09-2024, 12:06
Dario06's Avatar
Dario06 Dario06 is offline
Registered User
 
Join Date: Sep 2024
Location: Betelgeuse
Posts: 37
Thanks: 10
Thanked 25 Times in 16 Posts
Dario06 is on a distinguished road
Hi everyone
hi BLACKFIRE69, I want to remove all the button mods and leave them original anthem, browse, back, next, cancel and pause, can we do that?
Attached Files
File Type: zip 1_Original_Inno_Example-mod.zip (3.9 KB, 16 views)
Reply With Quote
The Following User Says Thank You to Dario06 For This Useful Post:
Behnam2018 (29-09-2024)
  #6  
Old 27-10-2024, 06:19
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 688
Thanks: 481
Thanked 2,547 Times in 561 Posts
BLACKFIRE69 is on a distinguished road
Arrow FMXInno - Update

FMXInno Quality Update - [October 27, 2024]


Code:
1. Updated `FNewINI` class and `MINI.exe`  
   - Now reads and saves INI files in UTF-8 without BOM.

2. Updated `FCheckboxTree` class  
   - Added new properties; you may need to adjust your current scripts.

3. Compatibility with the Latest Windows Version  
   - Optimized for Windows 11 24H2.
   - Compiled in RadStudio 12.2 (latest update).

4. Font Functions for Windows 11 24H2  
   * The following functions are incompatible with 24H2:
     - `InstallFMXFont`
     - `InvalidateFMXFont`
     - `DeleteFMXFont`

   * Use these alternative functions:
     - `AddFontResource2`
     - `RemoveFontResource2`

5. New Color Picker App Added

6. General Improvements and Bug Fixes.

- For Members -

Code:
1. Source Code Reorganization  
  - Now uses unit scope names.
  - Various units have been renamed for clarity.
  
2. The latest source code will be available in the coming days for members.

.
Attached Images
File Type: png 0.png (61.4 KB, 581 views)
File Type: png 1.png (32.7 KB, 579 views)
File Type: png 2.png (51.0 KB, 581 views)
Attached Files
File Type: rar FMXInno Update - [2024-Oct-27].rar (7.46 MB, 123 views)
Reply With Quote
The Following 12 Users Say Thank You to BLACKFIRE69 For This Useful Post:
ADMIRAL (27-10-2024), audiofeel (27-10-2024), Behnam2018 (07-11-2024), crachlow (13-11-2024), Dario06 (27-10-2024), Ele (28-10-2024), hitman797 (31-10-2024), joker85 (18-06-2025), Lord.Freddy (27-10-2024), Qirashi (29-10-2024), ScOOt3r (27-10-2024), Tihiy_Don (27-10-2024)
  #7  
Old 03-09-2024, 13:01
Fak Eid Fak Eid is offline
Registered User
 
Join Date: Jun 2023
Location: Mars
Posts: 147
Thanks: 98
Thanked 152 Times in 54 Posts
Fak Eid is on a distinguished road
Urgent Upgrades

When trying to create an .ini file for setting config of my installer using:
INI_Maker: FNewINI;
INI_Maker.FCreate(ExpandConstant('{src}\Game\Insta ller.ini'));

it is creating the file in UTF-8 with BOM which is messing with Inno Compiler and not producing the desired result. How can I have FNewINI to create the file in UTF-8 format.

In case when the main section say [Execs] doesn't exists and we create the SubSection using FNewINI:
Code:
INI_Maker.WriteSubString('Execs', 'AppExe'+IntToStr(j), 'Name', ExeEdit[i].GetText);
INI_Maker.WriteSubString('Execs', 'AppExe'+IntToStr(j), 'Filepath', ExeEdit[i+1].GetText);
INI_Maker.WriteSubString('Execs', 'AppExe'+IntToStr(j), 'Parameters', ExeEdit[i+2].GetText);
It does not create the main section.
Desired output should be:
Code:
[Execs]
[Execs\AppExe1]
Name=Horizon Forbidden West
Filepath=HorizonForbiddenWest.exe
Parameters=--fullscreen
It is like this instead:
Code:
[Execs\AppExe1]
Name=Horizon Forbidden West
Filepath=HorizonForbiddenWest.exe
Parameters=--fullscreen
FCombineText
No Mouse Actions like: OnMouseEnter, OnMouseLeave, OnClick are working
Reply With Quote
  #8  
Old 03-09-2024, 23:03
Tihiy_Don Tihiy_Don is offline
Registered User
 
Join Date: Mar 2023
Location: Los Angeles Lakers
Posts: 43
Thanks: 91
Thanked 26 Times in 18 Posts
Tihiy_Don is on a distinguished road
Quote:
- 'pWinNotification' has been removed.
Very sorry. I've just used Windows-style notifications in my latest releases.
Reply With Quote
The Following User Says Thank You to Tihiy_Don For This Useful Post:
Qirashi (11-09-2024)
  #9  
Old 10-09-2024, 21:02
Tihiy_Don Tihiy_Don is offline
Registered User
 
Join Date: Mar 2023
Location: Los Angeles Lakers
Posts: 43
Thanks: 91
Thanked 26 Times in 18 Posts
Tihiy_Don is on a distinguished road
Please add methods:
onMouseEnter(Event: TNotifyEvent); procedure onMouseLeave(Event: TNotifyEvent);

For the checkboxtree component (checkbox, radiobutton).

Last edited by Tihiy_Don; 10-09-2024 at 21:10.
Reply With Quote
The Following User Says Thank You to Tihiy_Don For This Useful Post:
Qirashi (11-09-2024)
  #10  
Old 12-09-2024, 01:38
Qirashi Qirashi is offline
Registered User
 
Join Date: Sep 2024
Location: Russia
Posts: 2
Thanks: 7
Thanked 3 Times in 2 Posts
Qirashi is on a distinguished road
There is a problem with the RemoveObject2 method for FCombobox. It does not work properly and does not delete the specified element.
Reply With Quote
The Following User Says Thank You to Qirashi For This Useful Post:
Behnam2018 (Yesterday)
  #11  
Old 18-11-2024, 13:20
Qirashi Qirashi is offline
Registered User
 
Join Date: Sep 2024
Location: Russia
Posts: 2
Thanks: 7
Thanked 3 Times in 2 Posts
Qirashi is on a distinguished road


I had a question and a suggestion on "FCheckboxTree". I hope the difficulties of translation allow me to get my point across.

When using FCheckboxTree, the logic of the Checkbox is slightly different than in the original inno setup. In the original, when selecting 1 of the components in the Checkbox tree, all those that are somehow related to the selected one are selected. I hope you understand me. In FMX, this is implemented a little differently. They are not always marked, which looks strange from the 1st side. It would be cool to see similar logic to the original inno setup.

Even in FCheckboxTree, you cannot select and remove Radiobutton, they are in FCheckboxTree, but it is problematic to combine them with regular Checkboxes.
Reply With Quote
The Following 2 Users Say Thank You to Qirashi For This Useful Post:
Behnam2018 (18-12-2024), Tihiy_Don (21-11-2024)
  #12  
Old 23-01-2025, 21:38
Tihiy_Don Tihiy_Don is offline
Registered User
 
Join Date: Mar 2023
Location: Los Angeles Lakers
Posts: 43
Thanks: 91
Thanked 26 Times in 18 Posts
Tihiy_Don is on a distinguished road
In Inno Setup version 6.4.0, there are issues with FMX, specifically with the procedure:
pTaskbarPreviewEx(FMXForm.HandleHWND, True);

After launching the main form, the following message appears:
"Taskbar cannot find window handles"

And shortly after that:
"Failed to initialize the taskbar. TaskbarPreviewEx failed"
Reply With Quote
The Following 2 Users Say Thank You to Tihiy_Don For This Useful Post:
Behnam2018 (24-01-2025), Qirashi (11-03-2025)
  #13  
Old 28-05-2025, 06:34
Budakgamers9849 Budakgamers9849 is offline
Registered User
 
Join Date: May 2025
Location: Indonesia
Posts: 6
Thanks: 0
Thanked 1 Time in 1 Post
Budakgamers9849 is on a distinguished road


Can you help me? What compressor is supported with this setup, I've searched but couldn't find it.
Reply With Quote
The Following User Says Thank You to Budakgamers9849 For This Useful Post:
Behnam2018 (28-05-2025)
  #14  
Old 11-06-2025, 11:48
Masquerade Masquerade is offline
Registered User
 
Join Date: Jan 2020
Location: Monte d'Or
Posts: 1,217
Thanks: 294
Thanked 1,405 Times in 637 Posts
Masquerade is on a distinguished road
Hi BLACKFIRE69,

It seems that installers built with FMXInno do not load correctly when running under Linux. I understand asking to support Linux is a huge ask, so I was wondering if you could add some form of bypass to FMXInno so that if the installer is detected to be running under Wine, it only loads the absolute bare minimum to result in no crashes?

Thanks!
Reply With Quote
  #15  
Old 30-06-2025, 03:53
XH75819116 XH75819116 is offline
Registered User
 
Join Date: Jun 2022
Location: china
Posts: 6
Thanks: 0
Thanked 3 Times in 3 Posts
XH75819116 is on a distinguished road
Gods please teach a problem: when the background is gif files, why encounter older hard drives, such as ssd's hard drive to release the file is very slow and slow, innosetup code: TopLayer.FCreate(FMXForm.Handle);
TopLayer.SetBounds(FMXForm.GetLeft, FMXForm.GetTop, FMXForm.GetWidth, (50));

GifImg.FCreate(TopLayer.Handle, ExtractAndLoad('9.gif'), True);
//GifImg.Opacity(0.1);
GifImg.SetBounds(0, 0, {#BaseWidth}, {#BaseHeight});
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Windows Fluent Effects Standalone API - InnoSetup / VCL / FXM BLACKFIRE69 Conversion Tutorials 0 15-11-2023 17:35
Windows Phone Installer similar to razor12911's original design? Kitsune1982 Conversion Tutorials 0 02-07-2020 13:04
INDEX - Conversion Tutorial Index Razor12911 Conversion Tutorials 5 11-06-2020 02:05
Frequently Asked Questions Joe Forster/STA PC Games - Frequently Asked Questions 0 29-11-2005 09:48



All times are GMT -7. The time now is 20:28.


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