|
#10
|
||||
|
||||
|
Quote:
users sometimes report this issue, but until now, i couldn't come up with a better solution. let's dive a little deeper into this. in FMXInno, all the forms (FluentForm, BlankForm, ImageForm, etc.) are based on a single form called 'TFMXFluentF', which is a modified Firemonkey TForm specifically used for FMXInno. i think this could be the main reason for all of this. So, that's how i came up with this new idea. i've introduced a new form called 'ClassicForm' into FMXInno. so, what is the 'ClassicForm'? Is it another blank form or something else? actually not, it's an original Firemonkey TForm which is exactly the same as the one Mr. Jiva Newstone used in 'ISFMXFW'. First of all, let's check out the key differences between FMXInno's TFMXFluentF and ISFMXFW's TForm: Code:
- FMXInno's TFMXFluentF: 1. This replaces the WizardForm when creating. 2. It has more control over this. 3. It can have Fluent effects on this. - ISFMXFW's TForm: 1. This is parented to the WizardForm, nothing is replaced. 2. It has limited controls. 3. Fluent effects cannot be used on this. so, how is the 'Classic' form gonna fix this issue? my idea is to have two modes for the same installer as a backup using 'Classic' forms. to do so, we can use command-line parameters in case the setup is unable to run with the 'TFMXFluentF'. we can easily do that using a batch file, and the following simple example will show you how to do that. Code:
var
IsClassicMode: Boolean;
function InitializeSetup(): Boolean;
begin
IsClassicMode := CmdLineParamExist('/Classic');
FMXInnoInit;
Result := True;
end;
procedure InitializeWizard();
begin
EmptyWizardForm(True, 640, 480);
// Music ...
FMXDesigning;
FMXForm.Show;
if IsClassicMode then
pTaskbarPreview(True) // or pTaskbarPreviewEx(WizardForm.Handle, True);
else
pTaskbarPreviewEx(FMXForm.HandleHWND, True);
end;
procedure FMXDesigning;
begin
{ FMX Form }
if IsClassicMode then
FMXForm.FCreateClassicForm(WizardForm.Handle, ALMoneyGreen, '')
else
FMXForm.FCreateFluent(WizardForm.Handle, False, False, 0.56, 0);
FMXForm.SetCursor(ExtractAndLoad('Dark.cur'));
...
end;
Code:
Bat File: @echo off cd /d "%~dp0" start "" "_Setup1.exe" /Classic in this way, you can try the classic mode if the installer is unable to run with modern forms. (because of the classic form, FMXInno may support old OS like Windows 7. i'm not sure because i don't have any virtual machine or bare metal right now to test it out.) there're some facts you should notice when using the classic forms: Code:
1. EmptyWizardForm - the 'Buttons' parameter should always be 'True'. eg: EmptyWizardForm(True, 640, 480); 2. pTaskbarPreviewEx - the 'hwnd' parameter should always be 'WizardForm.Handle'. eg: pTaskbarPreviewEx(WizardForm.Handle, True); in the attachment, i've included two examples: a simple example and the Modern FitGirl Installer example with both Normal and Classic modes. run the batch files to see the differences. the following screenshot will show you the Modern FitGirl installer in both normal and classic mode. (remember, classic forms are always borderless rectangle forms, and we cannot control the border style.) also, the first post has been updated with the new update. . Last edited by BLACKFIRE69; 11-05-2024 at 08:56. |
|
|
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 |