|
|
|
#1
|
||||
|
||||
|
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:
. |
| The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
| Sponsored Links |
|
#2
|
|||
|
|||
|
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;
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;
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. Last edited by Fak Eid; 05-08-2024 at 07:59. |
|
#4
|
||||
|
||||
|
Quote:
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. . |
|
#5
|
||||
|
||||
|
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? |
| The Following User Says Thank You to Dario06 For This Useful Post: | ||
Behnam2018 (29-09-2024) | ||
|
#6
|
||||
|
||||
|
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. . |
| The Following 12 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
|
#7
|
|||
|
|||
|
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);
Desired output should be: Code:
[Execs] [Execs\AppExe1] Name=Horizon Forbidden West Filepath=HorizonForbiddenWest.exe Parameters=--fullscreen Code:
[Execs\AppExe1] Name=Horizon Forbidden West Filepath=HorizonForbiddenWest.exe Parameters=--fullscreen No Mouse Actions like: OnMouseEnter, OnMouseLeave, OnClick are working |
|
#8
|
|||
|
|||
|
Quote:
|
| The Following User Says Thank You to Tihiy_Don For This Useful Post: | ||
Qirashi (11-09-2024) | ||
|
#9
|
|||
|
|||
|
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. |
| The Following User Says Thank You to Tihiy_Don For This Useful Post: | ||
Qirashi (11-09-2024) | ||
|
#10
|
|||
|
|||
|
There is a problem with the RemoveObject2 method for FCombobox. It does not work properly and does not delete the specified element.
|
| The Following User Says Thank You to Qirashi For This Useful Post: | ||
Behnam2018 (14-06-2026) | ||
|
#11
|
|||
|
|||
![]() 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. |
| The Following 2 Users Say Thank You to Qirashi For This Useful Post: | ||
Behnam2018 (18-12-2024), Tihiy_Don (21-11-2024) | ||
|
#12
|
|||
|
|||
|
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" |
| The Following 2 Users Say Thank You to Tihiy_Don For This Useful Post: | ||
Behnam2018 (24-01-2025), Qirashi (11-03-2025) | ||
|
#13
|
|||
|
|||
|
Can you help me? What compressor is supported with this setup, I've searched but couldn't find it. |
| The Following User Says Thank You to Budakgamers9849 For This Useful Post: | ||
Behnam2018 (28-05-2025) | ||
|
#14
|
|||
|
|||
|
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! |
|
#15
|
|||
|
|||
|
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}); |
![]() |
|
|
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 |