FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   FMXInno - Windows Fluent Design Installer UI for Inno (https://fileforums.com/showthread.php?t=104852)

statics 28-12-2023 12:47

Is there any way to include DSG compatibility in LizzardInstaller?
The changelog states that Cesar includes this module, but I can't find the scripts to use as a base

BLACKFIRE69 28-12-2023 23:42

FMXInno v1.0.0.2 - New Updates
 


FMXInno Final Release: [2023-Dec-29] - Update 02


Quote:

@everyone who contributed to FMXInno,

As we wrap up the year, and with this being the last update for this year, i want to express my gratitude for your invaluable contributions—bug reports, feature requests, and creative ideas. Your involvement has played a key role in refining FMXInno throughout all the years since the start. Thanks for being part of the FMXInno journey. Wishing you all the best in the coming year!

Cheers!

- BLACKFIRE

New update uploaded to first post, check it out.


What's new:
Code:

1. Added:
  - function wSystemReboot(EWX_Flags: UINT): Boolean;
  - function WinElevenTime(const IsClock24: Boolean): WideString;
  - function WinElevenDate: WideString;
  - procedure WinElevenChangeTimeAbbrev(const sAM, sPM: WideString);
  - procedure WinElevenChangeTimeFormat(const sTimeFormat: WideString);
  - procedure WinElevenChangeDayStr(const DayIdx: Integer; DayStr: WideString);
  - procedure WinElevenChangeMonthStr(const MonthIdx: Integer; MonthStr: WideString);
  - procedure WinElevenChangeDateFormat(const sDateFormat: WideString);
  - New FTrackBarCustom class.

2. Updated:
  - function wGetShortCut(Key: Word; Shift: TShiftState): TShortCut;
  - FCmdOut class.
  - FVirtualAction class.
  - FInstNewProc class.
  - DrawFrame for FForm, FCustomFluentWindow, FFluentDirBrowse and FFluentStartBrowse classes.

3. Fixed:
  - function InstallFMXFont(FontFileName: WideString): Boolean;
  - function DeleteFMXFont(FontFileName: WideString): Boolean;
  - procedure InvalidateFMXFont;
  - IsChecked for FToggleCheckBox.

4. FFluentDirBrowse, FFluentStartBrowse are now more customizable.
  - Added DisableDefaultAppName.
  - Button settings
  - and more.

5. Some improvements and minor bug fixes.


Tihiy_Don 29-12-2023 01:45

Quote:

Originally Posted by BLACKFIRE69 (Post 503204)
FTrackBarCustom:



1. FTrackBar - this depends on the Style file, so you need the ability to create or modify a new Style file.

2. FPictureTrackBar - a botva2-like trackbar requires skill in Photoshop.

3. for users like me who aren't design experts, we need an easy but fully customizable trackbar for general use. so, FTrackBarCustom may be suitable for that purpose.

4. i'm quite busy right now, so the given example is a bit ugly (no color matching). i'm sure you can design a better one on your own.


Code:

    function FCreate(FHandle, FFormHandle: TFmxObject; const FLeft, FTop, FWidth, FHeight, FBtnTop, FBtnWidth, FBtnHeight: Single; IsRoundSlide: Boolean): TFmxObject;
    procedure Left(FLeft: Single);
    procedure Top(FTop: Single);
    procedure Width(FWidth: Single);
    procedure Height(FHeight: Single);
    procedure Visible(FVisible: Boolean);
    procedure Enabled(FEnabled: Boolean);
    procedure FillColor(AlColor: Integer);
    procedure FillPicture(const Image: WideString; WrapMode: TWrapMode);
    procedure FillGradient(FColor1, FColor2: Integer; FStyle: TGradientStyle);
    procedure FillGradientLinearAngle(FAngle: Single);
    procedure FillGradientRadialAngle(FAngle: Single);
    procedure CusGradientPosition(X1, Y1, X2, Y2: Single);
    procedure StrokeColor(AlColor: Integer);
    procedure StrokeSetting(FThickness: Single; CapStyle: TStrokeCap; Dash: TStrokeDash; Join: TStrokeJoin);
    procedure StrokePicture(const Image: WideString; WrapMode: TWrapMode);
    procedure StrokeGradient(FColor1, FColor2: Integer; FStyle: TGradientStyle);
    procedure StrokeGradientLinearAngle(FAngle: Single);
    procedure StrokeGradientRadialAngle(FAngle: Single);
    procedure FillColorSlide(AlColor: Integer);
    procedure FillPictureSlide(const Image: WideString; WrapMode: TWrapMode);
    procedure FillGradientSlide(FColor1, FColor2: Integer; FStyle: TGradientStyle);
    procedure FillGradientLinearAngleSlide(FAngle: Single);
    procedure FillGradientRadialAngleSlide(FAngle: Single);
    procedure CusGradientPositionSlide(X1, Y1, X2, Y2: Single);
    procedure StrokeColorSlide(AlColor: Integer);
    procedure StrokeSettingSlide(FThickness: Single; CapStyle: TStrokeCap; Dash: TStrokeDash; Join: TStrokeJoin);
    procedure StrokePictureSlide(const Image: WideString; WrapMode: TWrapMode);
    procedure StrokeGradientSlide(FColor1, FColor2: Integer; FStyle: TGradientStyle);
    procedure StrokeGradientLinearAngleSlide(FAngle: Single);
    procedure StrokeGradientRadialAngleSlide(FAngle: Single);
    procedure Opacity(FOpacity: Single);
    procedure OpacitySlide(FOpacity: Single);
    procedure OpacityTotal(FOpacity: Single);
    procedure RotationAngleSlide(FRotationAngle: Single);
    procedure RotationCenterSlide(X, Y: Single);
    procedure CornerStyle(XRadi, YRadi: Single; FCorners: TCorners; CornerType: TCornerType);
    procedure Sides(Sides: TSides);
    procedure Scale(X, Y: Single);
    procedure CornerStyleSlide(XRadi, YRadi: Single; FCorners: TCorners; CornerType: TCornerType);
    procedure SidesSlide(Sides: TSides);
    procedure ScaleSlide(X, Y: Single);
    procedure SetValue(const FValue: Single);
    procedure SetMin(const FValue: Single);
    procedure SetMax(const FValue: Single);
    procedure OnChange(Event: TNotifyEvent);
    procedure AddProgress(AlColor: Integer);
    procedure AddProgressPicture(const Image: WideString; WrapMode: TWrapMode);
    procedure AddProgressGradient(FColor1, FColor2: Integer; FStyle: TGradientStyle);
    procedure ProgressVisible(FVisible: Boolean);
    procedure ProgressOpacity(FOpacity: single);
    procedure SetTag(Tag: Integer);
    procedure BringToFront;
    procedure BringToFrontSlide;
    procedure SendToBack;
    function GetTag: Integer;
    function GetValue: Single;
    function GetMax: Single;
    function GetMin: Single;
    function GetLeft: Single;
    function GetTop: Single;
    function GetWidth: Single;
    function GetHeight: Single;
    function GetObjectSlide: LongInt;
    function GetObjectBkg: LongInt;
    function GetObject: LongInt;
    function HandleSlide: TFmxObject;
    function HandleBkg: TFmxObject;
    function Handle: TFmxObject;


Thank you very much! This is what I've been waiting for! I just don't have the skills of a designer in graphic editors!

Tihiy_Don 29-12-2023 08:38

When changing the visible property of the FTrackBarCustom component to false for the first time, part of the Progress element does not disappear. It disappears when switching again. even if you register these properties together, the problem is similar:
Quote:

VolTrackbar.Visible(false);
VolTrackbar.ProgressVisible(false);
Example:
https://i122.fastpic.org/big/2023/12...e880febee7.gif

Jahan1373 01-01-2024 11:04

Quote:

Originally Posted by audiofeel (Post 503243)
Adaptation - localization of Jiva newstone script
(Translation into Russian. Changing the size of some objects, etc.).
Everything has been transferred to the FMXInno library by Blackfire69 dated November 06, 2023.
Unboxing via IsArcEx by Blackfire69.
All functionality is in place.
Comparison of systems requirements, Site verification. Animation. Gaussian Blur.
About the game page.
Splash screensaver.
Music.
Pause while unpacking
Restarting (itself) the installation after an unsuccessful installation.
Removing the game (if there is a key in the registry) before installation
Requires Inno Setup 5.6.1 and higher.
Thanks to Blackfire69

Please use the English language in the installation, as I do not know Russian

BLACKFIRE69 02-01-2024 03:06

FMXInno - Missing features
 
Quote:

>>> i've noticed that some of the useful features in the FMXInno developer edition(dev) are missing in the final release. therefore, i plan to include them in future updates.

What's new:

Code:

* Added missing FTypedText class.
* Added missing FTypedLine class.

.

Jahan1373 03-01-2024 12:56

://www.mediafire.com/file/gh4um1dsm92xbeg/Help.zip/file
Hello
Can someone help me, I have a problem with this installation
CPU will be 100% after installation
Second, after the installation is finished, the installation icons are opened, the problem is that they are white on the desktop, the game icon is not visible.
Friends, how to solve this problem?

BLACKFIRE69 05-01-2024 22:24

Quote:

Originally Posted by Jahan1373 (Post 503280)
://www.mediafire.com/file/gh4um1dsm92xbeg/Help.zip/file
Hello
Can someone help me, I have a problem with this installation
CPU will be 100% after installation


1. the following functions have been updated:
Code:

1. DeleteFMXFont.
2. FMXInnoShutDown.

2. the updated version has been tested on both Windows 10 and 11. replace the old files with the attached files below and

3. ensure the following order in your script file:

Code:

procedure DeinitializeSetup();
begin
  { Font }
  DeleteFMXFont(ExpandConstant('{tmp}\Your_Font_File_Here.ttf'));

  { ISArcEx }
  ISArcExCleanUp;

  { FMXInno }
  FMXInnoShutDown;
end;

4. if you are unsure how to modify your script, feel free to send it to us.

.

Tihiy_Don 07-01-2024 00:43

An error started to occur deleting the font after I replaced the library with a new one. Do the others have this problem or am I the only one?

Quote:

procedure DeinitializeSetup();
begin
DeleteFMXFont(ExpandConstant('{tmp}\segmdl2.ttf')) ;
ISArcExCleanUp;
FMXInnoShutDown;
end;
Moreover, I noticed an interesting feature, if you leave the order that I had earlier, then everything works fine.

Quote:

ISArcExCleanUp;
DeleteFMXFont(ExpandConstant('{tmp}\segmdl2.ttf')) ;
FMXInnoShutDown;

Tihiy_Don 07-01-2024 01:43

Quote:

Originally Posted by audiofeel (Post 503310)
First we delete the font, and only then we kill the IsArcEx and FMXInnoShutDown.
Code:

DeleteFMXFont(ExpandConstant('{tmp}\segmdl2.ttf')) ;
ISArcExCleanUp;
FMXInnoShutDown;

And also, if your repack will not be deployed on Windows 7, then you do not need to install this font (Segoe MDL2 Assets), it is available in both Windows 10 and Windows 11

this is exactly the error that occurs if the font is deleted in the first place. As recommended by the author of the library.

Quote:

DeleteFMXFont(ExpandConstant('{tmp}\segmdl2.ttf')) ;
ISArcExCleanUp;
FMXInnoShutDown;
https://i122.fastpic.org/big/2024/01...9efbf98b00.png

Tihiy_Don 07-01-2024 02:21

Quote:

Originally Posted by audiofeel (Post 503312)
To remove a font from the system, how to understand that it is installed?, find it along this path (C:\Users \????\AppData\Local\Microsoft\Windows\Fonts ). Restart the machine, rename the font file and try again.

For now, I want to deal with this problem at the file level in the folder that is being created in the temporary folder. I checked, the file "segmdl2.ttf" is there. I don't quite understand yet, and there should be a Windows font directory here.

Jahan1373 07-01-2024 04:33

https://www.mediafire.com/file/58adn...dicam.rar/file

Hello friends, does anyone know a solution to this problem?
There is a problem with the colors of this installation
More than 20 colors have this problem
The symbols and texts of this installation are not readable
The creator of this script says go learn design
Do you all know how to design on this forum?
The designer of this script does not accept that there is a problem with the installation and says go learn design. I have uploaded the list of problematic colors. Please help to permanently solve this problem so that the colors of this script are correct.
And read the texts of this installation in different colors
Thanks to those who help

BLACKFIRE69 07-01-2024 04:35

Quote:

Originally Posted by Tihiy_Don (Post 503311)
this is exactly the error that occurs if the font is deleted in the first place. As recommended by the author of the library.



https://i122.fastpic.org/big/2024/01...9efbf98b00.png



well,

* first of all, this isn't an error message; it's a warning message indicating that the font cannot be removed completely but only partially.

* as @audiofeel mentioned, the font (segmdl2.ttf) you're using is a system font that is already installed in the system, hence this warning will be displayed.



to avoid this issue:

1. 'InstallFMXFont' is intended for custom fonts, not system fonts. in a future update, i'll modify the DLL to prevent the installation of system fonts accidentally.

2. For the current situation, what you need to do is install your font file as a copy of the current system file. this simply means renaming your font file (segmdl2.ttf) to something else, such as 'segmdl2_New.ttf' or 'segmdl2_Copy.ttf', or any other name you prefer. this'll prevent the warning message from appearing.

Code:


Rename:  segmdl2.ttf  >>>  segmdl2_BF69.ttf


[Files]
...
Source: ".\Files\segmdl2_BF69.ttf"; DestDir: "{tmp}"; Flags: dontcopy;

{Code]
function InitializeSetup(): Boolean;
begin
  InstallFMXFont(ExtractAndLoad('segmdl2_BF69.ttf'));

  FMXInnoInit;
  ...
end;

procedure DeinitializeSetup();
begin
  DeleteFMXFont(ExpandConstant('{tmp}\segmdl2_BF69.ttf'));

  ISArcExCleanUp;
  FMXInnoShutDown;
end;



* ISArcExCleanUp:

regarding 'ISArcExCleanUp,' when you call the function 'ISArcExCleanUp,' it performs internal memory clean-up for the current process. this may include cleaning up the font memory cache, which could be why the warning message isn't displayed. however, it isn't recommended to call 'ISArcExCleanUp' before 'DeleteFMXFont'.

BLACKFIRE69 07-01-2024 07:40

Quote:

Originally Posted by Jahan1373 (Post 503316)
https://www.mediafire.com/file/58adn...dicam.rar/file

Hello friends, does anyone know a solution to this problem?
There is a problem with the colors of this installation
More than 20 colors have this problem
The symbols and texts of this installation are not readable
The creator of this script says go learn design
Do you all know how to design on this forum?
The designer of this script does not accept that there is a problem with the installation and says go learn design. I have uploaded the list of problematic colors. Please help to permanently solve this problem so that the colors of this script are correct.
And read the texts of this installation in different colors
Thanks to those who help


oh boy, are you serious? sorry to say this but you need to have common sense. yes, indeed, texts with a font color close to white is difficult to see on a white background or vice versa. so what's the magic here? :confused:

Jahan1373 07-01-2024 08:23

Quote:

Originally Posted by BLACKFIRE69 (Post 503320)
oh boy, are you serious? sorry to say this but you need to have common sense. yes, indeed, texts with a font color close to white is difficult to see on a white background or vice versa. so what's the magic here? :confused:


I mentioned the list of problematic colors, except for white and black, other colors have problems. I tested all the installed colors one by one.
But the manufacturer just says that I have to learn to design. You are a designer
If this problem is not solved, we will all face problems
Why should green have a problem with white, but the manufacturer does not agree

Jahan1373 07-01-2024 08:33

Quote:

Originally Posted by BLACKFIRE69 (Post 503320)
oh boy, are you serious? sorry to say this but you need to have common sense. yes, indeed, texts with a font color close to white is difficult to see on a white background or vice versa. so what's the magic here? :confused:

Why is yellow a problem?
Why colors with a little white in them are not readable
Why do some greens have problems?
FF AD FF 2F
FF FF FF 00
You are the great designers of the forum
Why is there no such problem in similar facilities?

BLACKFIRE69 07-01-2024 08:43

Quote:

Originally Posted by Jahan1373 (Post 503321)
I mentioned the list of problematic colors, except for white and black, other colors have problems. I tested all the installed colors one by one.

- i mean colors that are close to the white color, not the exact white. colors like 'Aliceblue', 'AntiqueWhite', 'Azure', etc., that you marked are not very bright colors; they are very close to the white color.



Quote:

Originally Posted by Jahan1373 (Post 503321)
But the manufacturer just says that I have to learn to design. You are a designer
If this problem is not solved, we will all face problems.

- no one will face any issue with colors except you.



Quote:

Originally Posted by Jahan1373 (Post 503321)
Why should green have a problem with white, but the manufacturer does not agree

- green (FF 00 80 00) color is just fine.

BLACKFIRE69 07-01-2024 08:53

Quote:

Originally Posted by Jahan1373 (Post 503322)
Why is yellow a problem?
Why colors with a little white in them are not readable
Why do some greens have problems?
FF AD FF 2F
FF FF FF 00
You are the great designers of the forum
Why is there no such problem in similar facilities?



i can't believe this. there's no problem with the colors; the only thing is that some colors are hard to see on a white background. Please, grow up. :o


1. FF AD FF 2F
2. FF FF FF 00

.

Jahan1373 07-01-2024 09:44

Quote:

Originally Posted by BLACKFIRE69 (Post 503324)
i can't believe this. there's no problem with the colors; the only thing is that some colors are hard to see on a white background. Please, grow up. :o


1. FF AD FF 2F
2. FF FF FF 00

.

I'm glad I didn't grow up with a programmer.
That part should always be black to be readable
My problem was mostly only on Autoran's page. Thank you again. Good night my friend

BLACKFIRE69 07-01-2024 15:00

Quote:

Originally Posted by audiofeel (Post 503318)
@BLACKFIRE69.A question about the Google translator. Why does he add extra characters to the translation? and the translation differs from the result of an online translator?

Here is my code.
Code:

StatusLB.Text(GoogleTranslate('Welcome to Installation', 'en', 'ru'));
And that's what happens online (not a single mistake in meaning).
Добро пожаловать в установку.

And that's what happens through the function.
Добро пожаловать%20to%20Установка

And another question.... how do I get the language code where the installation is running?




the decoding issue was fixed, but it seems like the translated output is incorrect. this is out of my hands because it's up to Google's APIs. we'll see what we can do about it.


.

BLACKFIRE69 07-01-2024 16:12

Quote:

Originally Posted by audiofeel (Post 503332)
Code:

StatusLB.Text(GoogleTranslate('WelcomeToInstallation', 'en', 'en'));


yes it seems like it's working without spaces, (hey Google, what the f*ck? :p),


but we cannot use it that way. i just updated the Google API, and now it works.


.

BLACKFIRE69 07-01-2024 17:00

Quote:

Originally Posted by audiofeel (Post 503334)
Then one more counter question. how do I get the correct geocode from the system from where the installer is launched consisting of only two letters, that is, the language code, these functions, in my opinion, do not cause it, but only the full name of the country? = ISO-639
Code:

function GetUILanguage: Integer;
function wGetUserCountryName: WideString;
external 'wGetUserCountryName@files:FMXInno.dll stdcall delayload';



Code:

function wGetUserUILanguageISO639: WideString;

BLACKFIRE69 10-01-2024 05:37

@Tihiy_Don,

Code:

- Updated FToggleCheckBox.FontColor method.

Tihiy_Don 10-01-2024 10:15

Quote:

Originally Posted by BLACKFIRE69 (Post 503351)
@Tihiy_Don,

Code:

- Updated FToggleCheckBox.FontColor method.

Thanks, everything is working as it should now.

BLACKFIRE69 12-01-2024 00:36

FMXInno Dev crazy stuff
 
Quote:

The FMXInno Dev is getting new features daily. guys, i need your thoughts on the following specific features, as some of them are extra features and may not be necessary for every user in our FMXInno community. if you want these features in the final release, let me know.

1. Desktop Widgets:
Code:

* Similar to MacOS Sonoma, these widgets will be positioned on the active desktop,
  not on the installer interface.

-- Includes CPU / RAM / DISK / Network / Battery usage.
-- Temperature.

-- (The weather widget is currently in the development stage, not fully finished)

-- Clock (available in both Digital and Analog).
-- Image gallery slideshow.
-- Installation status: Remaining / Elapsed time, Installing speed, etc.
-- Users can create custom widgets as desired.
-- Fully customizable.



2. Co-Pilot sidebar Panel:
Code:

* Similar to Windows Co-pilot, Co-pilot sidebar will be shown in an extended space of
  the installer on the left or right. meaning, the installer will automatically be
  resized (expanded/collapsed) when the Co-pilot side-bar is activated/deactivated.

-- Powered by GPT-3.5 Turbo (paid users can use GPT-4 +).
-- DALL-E is not yet available (even for paid users).

-- Ability to define custom error codes or grammar queries for the corresponding
  installer. so, the Co-pilot will describe these errors or specific statuses and
  recommend suggestions when the user asks about them.

-- By default, an animated image/button (like Apple's Siri) will indicate the
  Co-pilot on the installer until the user changes it.

-- Fully customizable.


.

Masquerade 12-01-2024 01:42

@Blackfire69
They look AWESOME. Such modern style features.

Behnam2018 18-01-2024 05:15

Hi audiofeel Thank you very much for your 👌

BLACKFIRE69 22-01-2024 02:10

FMXInno - Installer Template
 
9 Attachment(s)
FMXInno - Installer template



Quote:

-- A common question that the FMXInno community always asks is whether there's a tutorial or guidance to create their own installer from scratch using FMXInno. however, there's currently no such tutorial because there're many areas to cover for beginners, making it a challenging task.

-- A possible and effective solution, i believe, is to provide a common template. this way, people can use it as a base and make changes on top of it until they gain enough experience to build their own installer.

-- Take the following provided script as the template; i've tried to keep everything simple and included average features to match modern styles. also, study the examples included in the attachment to the first post for more information.

-- If you've any questions or if anything is unclear, feel free to ask me or the FMXInno community. we'd be happy to help you.

Quote:

Features:

* Splash: Static png
* Music: Equalizer
* Taskbar: Preview / Progress
* Buttons: Botva2-Like
* ProgressBar: DotGauge / Botva2-Like / ThinProgressBar

* Installer: Background image
* Browse Dir: Fluent UI
* Uninstaller: Background image

* Shortcut: Desktop / StartMenu
* ISArcEx: Srep+lolz


.

BLACKFIRE69 23-01-2024 09:17

FMXInno v1.0.0.2 - Extra
 
1 Attachment(s)
i've added two new functions to retrieve the build date of the FMXInno library. i hope they'll be helpful in some cases.

Code:

function wGetFMXInnoBuildDate: Integer;
procedure wGetFMXInnoBuildDateEx(var YearW, MonthW, DayW: Word);


1. Method - 01

Code:

function FMXInnoBuildDate_1: String;
var
  YearW, MonthW, DayW: Word;
begin
  wGetFMXInnoBuildDateEx(YearW, MonthW, DayW);

  Result := Format('Build Date:  %d-%d-%d', [YearW, MonthW, DayW]);
end;


2. Method - 02

Code:

function FMXInnoBuildDate_2: String;
var
  YearW, MonthW, DayW: Word;
  EncodedDate: Integer;
begin
  EncodedDate := wGetFMXInnoBuildDate;

  YearW  :=  EncodedDate shr 9;
  MonthW  := (EncodedDate shr 5) and $0F;
  DayW    :=  EncodedDate and $1F;

  Result := Format('Build Date:  %d-%d-%d', [YearW, MonthW, DayW]);
end;


.

hitman797 24-01-2024 13:53

@BLACKFIRE69, can you add these two events to the form object.
FForm:
Code:

    procedure OnActivate(Event: TNotifyEvent);
    procedure OnDeactivate(Event: TNotifyEvent);


BLACKFIRE69 24-01-2024 19:11

Quote:

Originally Posted by hitman797 (Post 503449)
@BLACKFIRE69, can you add these two events to the form object.
FForm:
Code:

    procedure OnActivate(Event: TNotifyEvent);
    procedure OnDeactivate(Event: TNotifyEvent);




these two events don't get triggered for 'FForm', so nothing will change with these two events, and they'll never get triggered.

BLACKFIRE69 26-01-2024 23:11

FMXInno - Modern FitGirl Installer
 
10 Attachment(s)
Modern FitGirl Installer for Windows 11+



Quote:

How would it look if FitGirl's installer is created in 2024 and specifically targeted Windows 11+?

Let's give a modern look to a classic interface and compare it with modern styles.
Quote:

What's new:

* Nothing new; i just gave a retouch to the classic interface.
Quote:

Notes:

* This is just a concept, not for general use. if you need the complete script with all the features, let me know.
* Remember to change 'Opacity' as you prefer in your case.
Quote:

; Setup: Theme
#define Opacity "0.0" /* Opacity Level: <0.0> to <1.0> */


.

BLACKFIRE69 01-02-2024 12:20

FMXInno v1.0.0.2 - Updates
 
FMXInno Final Release: [2024-Jan-31]




New update uploaded to first post, check it out.



Code:

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:

Code:

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.


https://i.ibb.co/FsGLSKk/0r.pnghttps://i.ibb.co/h8q26Ry/00r2.png







2. Installer Template Generator:

Code:

1. A simple tool to generate installer templates.

  - The script will include all the fundamental functions that the installer requires.



.

Tihiy_Don 07-02-2024 08:43

Maybe it will be useful to someone.
Automatically set the unpacking parameters depending on the amount of RAM:

Quote:

function GetRamMemory: Integer;
var i: Integer;
s: String;
begin
s:=MbOrTb(RamInfo.TotalRam, 0);
for i:=length(s) downto 1 do
if not (s[i] in ['0','1','2','3','4','5','6','7','8','9']) then delete(s,i,1);

Result:=StrToInt(s);
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
XValue, LRamValue, LCpuValue, SValue: String;
begin
case GetRamMemory of
0..2:
begin
XValue:= 't4';
SValue:= '512mb';
LRamValue:= '512mb';
LCpuValue:= '4';
end;
3..4:
begin
XValue:= 't4';
SValue:= '768mb';
LRamValue:= '768mb';
LCpuValue:= '4';
end;
5..6:
begin
XValue:= 't45p';
SValue:= '1024mb';
LRamValue:= '1024mb';
LCpuValue:= '4';
end;
7..8:
begin
XValue:= 't65p';
SValue:= '1536mb';
LRamValue:= '1536mb';
LCpuValue:= '4';
end;
9..12:
begin
XValue:= 't75p';
SValue:= '2064mb';
LRamValue:= '2064mb';
LCpuValue:= '4';
end;
13..16:
begin
XValue:= 't85p';
SValue:= '20%';
LRamValue:= '50%';
LCpuValue:= '6';
end;
17..32:
begin
XValue:= 't85p';
SValue:= '40%';
LRamValue:= '40%';
LCpuValue:= '6';
end;
33..150:
begin
XValue:= 't85p';
SValue:= '40%';
LRamValue:= '40%';
LCpuValue:= '6';
end;
end;

if CurStep = ssInstall then
begin
ISArcExCancel:= 0;
ISArcExDiskCount:= 0;
ISArcDiskAddingSuccess:= False;
ISArcExError:= True;

ExtractTemporaryFile('Russian.ini');
ExtractTemporaryFile('unarc.dll');
ExtractTemporaryFile('arc.ini');
ExtractTemporaryFile('cls.ini');
ExtractTemporaryFile('Facompress.dll');

#ifdef xtool_zlib
ExtractTemporaryFile('zlibwapi.dll');
ExtractTemporaryFile('xtool.exe');
if IsWin64 then
begin
SetIniString('External compressor:xtool', 'unpackcmd', ' "xtool" d:precomp:' + XValue + ' - - <stdin> <stdout>', ExpandConstant('{tmp}\arc.ini'));
end else
begin
SetIniString('External compressor:xtool', 'unpackcmd', ' "xtool" d:precomp:' + XValue + ' - - <stdin> <stdout>', ExpandConstant('{tmp}\arc.ini'));
end;
#endif

#ifdef srep
ExtractTemporaryFile('cls-srep.dll');
if IsWin64 then
begin
ExtractTemporaryFile('cls-srep_x64.exe');
SetIniString('Srep', 'Memory', SValue, ExpandConstant('{tmp}\cls.ini'));
end else
begin
ExtractTemporaryFile('cls-srep_x86.exe');
SetIniString('Srep', 'Memory', SValue, ExpandConstant('{tmp}\cls.ini'));
end;
#endif

#ifdef lolz
ExtractTemporaryFile('cls-lolz.dll');
if IsWin64 then
begin
ExtractTemporaryFile('cls-lolz_x64.exe');
SetIniString('lolz', 'MaxThreadsUsage', '4', ExpandConstant('{tmp}\cls.ini'));
SetIniString('lolz', 'MaxMemoryUsage', LRamValue, ExpandConstant('{tmp}\cls.ini'));
end else
begin
ExtractTemporaryFile('cls-lolz_x86.exe');
SetIniString('lolz', 'MaxThreadsUsage', '4', ExpandConstant('{tmp}\cls.ini'));
SetIniString('lolz', 'MaxMemoryUsage', LRamValue, ExpandConstant('{tmp}\cls.ini'));
end;
#endif
....

BLACKFIRE69 08-02-2024 00:11

Quote:

Originally Posted by Tihiy_Don (Post 503554)
Maybe it will be useful to someone.
Automatically set the unpacking parameters depending on the amount of RAM:


Code:

function GetRamMemory: Integer;
var i: Integer;
s: String;
begin
s:=MbOrTb(RamInfo.TotalRam, 0);
for i:=length(s) downto 1 do
if not (s[i] in ['0','1','2','3','4','5','6','7','8','9']) then delete(s,i,1);

Result:=StrToInt(s);
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
XValue, LRamValue, LCpuValue, SValue: String;
begin
case GetRamMemory of
0..2:
begin
XValue:= 't4';
SValue:= '512mb';
LRamValue:= '512mb';
LCpuValue:= '4';
end;
3..4:
begin
XValue:= 't4';
SValue:= '768mb';
LRamValue:= '768mb';
LCpuValue:= '4';
end;

// ....
end;




how about this way? i think it's more convenient.


Code:

procedure _GetMeRAMInGB;
var
  MyRamInGB: Integer;
begin
  // Note:  ARamUsage.TotalRam --> Total RAM in MB.

  MyRamInGB := Round(ARamUsage.TotalRam / 1024)// 0, 1, 2, 3, ....

  case MyRamInGB of
    0..2:
    begin
      MsgBox('RAM: 0..2 GB', mbInformation, MB_OK);
    end;

    3..4:
    begin
      MsgBox('RAM: 3..4 GB', mbInformation, MB_OK);
    end;

    // ....

    else
    begin
      MsgBox('Are you sure you really have RAM installed?  ;)', mbError, MB_OK);
    end;
  end;
end;


Tihiy_Don 08-02-2024 01:58

Quote:

Originally Posted by BLACKFIRE69 (Post 503559)
how about this way? i think it's more convenient.


Code:

procedure _GetMeRAMInGB;
var
  MyRamInGB: Integer;
begin
  // Note:  ARamUsage.TotalRam --> Total RAM in MB.

  MyRamInGB := Round(ARamUsage.TotalRam / 1024)// 0, 1, 2, 3, ....

  case MyRamInGB of
    0..2:
    begin
      MsgBox('RAM: 0..2 GB', mbInformation, MB_OK);
    end;

    3..4:
    begin
      MsgBox('RAM: 3..4 GB', mbInformation, MB_OK);
    end;

    // ....

    else
    begin
      MsgBox('Are you sure you really have RAM installed?  ;)', mbError, MB_OK);
    end;
  end;
end;


It's more convenient, yes. I did this because I thought that it could only be done through the MbOrTb function and asked about it in the FMX Q&A topic, but I never got an answer, so I did and already released a repack on the torrent tracker, the main thing is that it works.

I was not afraid to make it on FMX and release it, I even worked on supporting 32-bit machines.

Tihiy_Don 08-02-2024 01:59

Quote:

Originally Posted by audiofeel (Post 503555)
If it comes to that, then you can do the same with the number of processor cores and with its frequency (where necessary).
Can also implement a comparison of free disk space and, based on the results, place a temporary folder there for unpacking. ;)

I know what can be done with kernels in mind, but it doesn't make sense for my repack.

BLACKFIRE69 12-02-2024 11:13

FMXInno - documentation
 
3 Attachment(s)
FMXInno - documentation




Quote:

* A documentation for FMXInno may arrive someday, but not in the near future. what are your thoughts on this? ;)



.

Ponasss 22-02-2024 06:18

Why does it show so many Trojans?

(че столько троянов показывает?)

Joe Forster/STA 23-02-2024 06:01

Quote:

Originally Posted by Ponasss (Post 503714)
Why does it show so many Trojans?

(This is an English-only forum.) Your virus scanner may be overreacting. I suggest that you upload suspicious files to https://www.virustotal.com, an online multi-engine virus scanner.


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

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