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)

BLACKFIRE69 30-07-2023 05:15

Quote:

Originally Posted by crachlow (Post 501790)
@BlackFire69. In continuation of the same topic question. In the task manager, after unpacking is canceled or its emergency termination, incomplete processes from cls remain that continue their work, while consuming memory quite well. Maybe it is possible to solve this issue somehow?
https://youtu.be/IvkcMEwYrbA


for my system, this update is working as expected(xtool+srep+lolz) (though untested on non-English systems). if you encounter issues, please manually terminate all tasks.

Code:

Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM xtool.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrCode);
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM cls-lolz_x64.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrCode);
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM cls-srep_x64.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrCode);


.

crachlow 30-07-2023 08:33

@BlackFire69. Thanks for the emergency fix.
https://youtu.be/q2jW1hAfZ_s

BLACKFIRE69 31-07-2023 22:05

FMXInno Dev
 
FMXInno Dev


can you perform a test with the given conditions and let me know if the scaling is accurate or not?

1. in 2k..8k monitors.
2. with Higher DPI values.

.

Tihiy_Don 31-07-2023 23:19

I'm really looking forward to the functionality of playing videos in the background of the installer window. This means the installer window, similar to the background image of the form to make a background video of the form. So that the elements can be placed on top of the video background.

BLACKFIRE69 01-08-2023 03:14

Quote:

Originally Posted by audiofeel (Post 501821)
The first result (unfortunately, it cannot be called reliable, since we used just screen scaling as a high-resolution emulation).
On the form type "FCreateImageForm" - the result is just fine, except that "FWinTitleBar" refuses to scale on this form type (only on this form type) and looks small. Now for the cons. The form always appears in the upper left corner of the screen and not in the center as it should. ""Toggle CheckBox" scaled a little wrong, the bottom space is a little hidden and they look smudged.


@audiofeel,

don't go beyond that. the given DLL file is not completed and is in development stage. so just tell me about the given example (_TestSpace.iss).

BLACKFIRE69 01-08-2023 08:07

FMXInno - Updates
 
FMXInno Update - 2023-July-31

Code:

* Updated to the Hotfix-02.

* Added new property for the FMXForm.
  - procedure CanvasQuality(FCanvasQuality: TCanvasQuality);

* Updated ISArcEx.
  - CurrentFile in the callback function won't be empty.


The first post has been updated.

BLACKFIRE69 02-08-2023 13:23

FXPacker - Updates
 
2 Attachment(s)
Update available!

Code:

* Some improvements.
.

BLACKFIRE69 05-08-2023 00:41

Quote:

Originally Posted by audiofeel (Post 501852)
#BLACKFIRE69
You have added a check for "OnClick" in "FToggleCheckBox". I guess it doesn't work properly. I want to create a "FToggleCheckBox" as a "FRadioButton" (so that each time I don't pick up a style file, but just paint "FToggleCheckBox"). I can not. In my opinion, the check for "OnClick" does not work.


sorry, my mistake. ;)

furthermore, comment out the following lines.

Code:

procedure CommonOnClick(Sender: TObject);
begin
  case Sender of
    TObject(Chck[1].GetObject):
    if Chck[1].IsChecked then
    begin
      //Chck[1].SetChecked(False);
      Chck[2].SetChecked(True);
    end else
    begin
      //Chck[1].SetChecked(True);
      Chck[2].SetChecked(False);
    end;

    TObject(Chck[2].GetObject):
    if Chck[2].IsChecked then
    begin
      //Chck[2].SetChecked(False);
      Chck[1].SetChecked(True);
    end else
    begin
      //Chck[2].SetChecked(True);
      Chck[1].SetChecked(False);
    end;
  end;
end;


.

Ning 08-08-2023 04:26

Hello, I am new to repackaging and inno setup, how should I use your plug-in? I downloaded it and tried to run the script, but the following error always popped up. It is an error in the [code] section of the FMXInnoHandle.iss script. Excuse me. How to solve it? In addition, I am using Windows7, does this have something to do with the system?

https://postimg.cc/5j6K7BSg

ravikant 12-08-2023 04:10

Quote:

Originally Posted by Ning (Post 501898)
Hello, I am new to repackaging and inno setup, how should I use your plug-in? I downloaded it and tried to run the script, but the following error always popped up. It is an error in the [code] section of the FMXInnoHandle.iss script. Excuse me. How to solve it? In addition, I am using Windows7, does this have something to do with the system?

https://postimg.cc/5j6K7BSg

Use a custom script based on fmxinno

BLACKFIRE69 13-08-2023 10:44

FMXInno - Optional Updates
 
Quote:

Originally Posted by tayeb1992 (Post 501340)
Developer suggestions:
Hi BLACKFIRE69, thank you for everything you've added to this library.
If the following components are added, it will be great.

Feature of the FMXInno plugin:
  1. TabControl: TTabControl;
  2. TabItem: TTabItem;
  3. ActionList: TActionList;
  4. ChangeTabAction: TChangeTabAction;
  5. NextTabAction: TNextTabAction;
  6. PreviousTabAction: TPreviousTabAction;
  7. GridLayout: TGridLayout;
  8. Viewport3D: TViewport3D;
  9. Layer3D: TLayer3D;



the following classes are now included.


Code:

* Viewports:
 TViewport3D

* 3D Scene:
 TCamera
 TLight
 TDummy

* 3D Layers:
 TLayout3D
 TBufferLayer3D
 TSolidLayer3D
 TImage3D
 TLayer3D
 TTextLayer3D

* 3D Shapes
 TPlane
 TDisk
 TCube
 TSphere
 TCylinder
 TRoundCube
 TCone
 TGrid3D
 TText3D
 TRectangle3D
 TEllipes3D

Code:

* Controls
 TTabControl
 TTabItem

* Materials
 TColorMaterialSource
 TTextureMaterialSource
 TLightMaterialSource


.

BLACKFIRE69 14-08-2023 23:08

Just for fun
 
Code:

FMXInno:  Puzzle  (Dragging Example)
.

crachlow 18-08-2023 13:07

Quote:

Originally Posted by audiofeel (Post 502001)
@BLACKFIRE69
I understand that the scale function is in the process of being finalized and tested ... but could you at least temporarily fix this bug. When the user changes the desktop scale from the recommended system (i.e. 100%) then "FFolderTreeView" floats away and is not visible. This appeared on the latest dll.
--
But the good old "FDirBrowse" feels much better. And it scales correctly. Somehow it even became a shame for "FFluentDirBrowse".

Another quirk. If you hold the window with the mouse on a scale of 150 and try to move it, miracles happen. The window moves like a living thing across the screen.

hitman797 18-08-2023 14:07

1 Attachment(s)
FMXInno SlideShow Example using:
  • FMXForm: FForm;
  • FMXTAB: FTabControl;
  • FMXTIMER: FTimer;
  • FMXITEM: array [1..20] of FTabItem;
  • FMXRECT: array [1..20] of FRectangle;

hitman797 18-08-2023 23:49

2 Attachment(s)
Quote:

Originally Posted by audiofeel (Post 502037)
@hitman797
:o Let's make the code a little smaller. It does not affect anything in my opinion except for the size of the script file. O = Optimization
Code:

var
  SSImg: String;
  i: Integer;
begin
  for i:= 1 to 20 do
  begin
    FMXITEM[i].FCreateEx(FMXTAB.Handle);
    FMXRECT[i].FCreate(FMXITEM[i].Handle);
    FMXRECT[i].Align(Client);
    SSImg:= 'Background' + IntToStr(i) + '.jpg';
    FMXRECT[i].FillPicture(ExtractAndLoad(SSImg), wmTileStretch);
  end;

:confused: Is it possible to place various other objects on top of the slide show? Won't they float with the picture?

Other component can be added by adding TabControl2
and Handle TabControl2 in FMXForm.
and add objects to TabControl2.

hitman797 19-08-2023 13:01

FMXInno Viewport 3D Example
 
2 Attachment(s)
FMXInno Viewport 3D Example using:
  • FMXForm: FForm;
  • FMXTAB: array [1..4] of FTabControl;
  • FMXEDIT: FEdit;
  • FMXViewport3D: FViewport3D;
  • FMXLayer3D: array [1..2] of FLayer3D;
  • FMXFloatAnimation: array [1..4] of FFloatAnimation;
  • FMXButton: array [1..4] of FButton;

@BLACKFIRE69
HI, BLACKFIRE69
Thank you for the update.
Can you add BringToFront to "FLayer3D".

hitman797 20-08-2023 12:10

3d delphi
 
2 Attachment(s)
Code:

    Form1: TForm;
    Viewport3D1: TViewport3D;
    Layer3D1: TLayer3D;
    FloatAnimation1: TFloatAnimation;
    Layer3D2: TLayer3D;
    FloatAnimation2: TFloatAnimation;

Code:

      object FloatAnimation1: TFloatAnimation
        Enabled = True
        Duration = 1
        Loop = True
        PropertyName = 'RotationAngle.X'
        StartValue = 0
        StopValue = 180
        OnProcess = FloatAnimation1Process
      end
      object FloatAnimation2: TFloatAnimation
        Enabled = True
        Duration = 1
        Loop = True
        PropertyName = 'RotationAngle.X'
        StartValue = 180
        StopValue = 360
        OnProcess = FloatAnimation2Process
      end

Code:

procedure TForm3.FloatAnimation1Process(Sender: TObject);
begin
  Layer3D2.BringToFront;
end;

procedure TForm3.FloatAnimation2Process(Sender: TObject);
begin
  Layer3D1.BringToFront;
end;


hitman797 24-08-2023 02:34

Drive Media Type
 
2 Attachment(s)
Example-DiskList.iss
Code:

var
  FMXLabel  : FLabel;

procedure FMXInnoInit;
begin
  FMXLabel  := InitLabelHandle;
end;

procedure FMXDesigning;
begin
  FMXLabel.FCreate(FMXForm.Handle, '');
  if wGetDriveMediaType('D') = 1 then
  begin
  FMXLabel.Text('UNKNOWN');
  end;
  if wGetDriveMediaType('D') = 2 then
  begin
  FMXLabel.Text('HDD');
  end;
  if wGetDriveMediaType('D') = 3 then
  begin
  FMXLabel.Text('SSD');
  end;
  if wGetDriveMediaType('D') = 4 then
  begin
  FMXLabel.Text('SCM');
  end;
  FMXLabel.Left(50);
  FMXLabel.Top(50);
  FMXLabel.FontSetting('Segoe UI', 16, ALBlack);
end;


crachlow 24-08-2023 08:33

Type disk
 
1 Attachment(s)
You didn't look at the constants.
const
HDD_MEDIA_TYPE_UNKNOWN = $0000;
HDD_MEDIA_TYPE_HDD = $0003;
HDD_MEDIA_TYPE_SSD = $0004;
HDD_MEDIA_TYPE_SCM = $0005;
[IMG]
https://i.ibb.co/HC1cpzn/2023-08-24-202555.png
[/IMG]

crachlow 24-08-2023 08:40

Quote:

Originally Posted by audiofeel (Post 502082)
Something went wrong. does not correctly determine the type of disk

And in general, you are not going to manually register the disks that may be in the system?

hitman797 24-08-2023 08:59

Quote:

Originally Posted by crachlow (Post 502083)
You didn't look at the constants.
const
HDD_MEDIA_TYPE_UNKNOWN = $0000;
HDD_MEDIA_TYPE_HDD = $0003;
HDD_MEDIA_TYPE_SSD = $0004;
HDD_MEDIA_TYPE_SCM = $0005;
[IMG]
https://i.ibb.co/HC1cpzn/2023-08-24-202555.png
[/IMG]

Code:

var
  FMXLabel  : FLabel;

procedure FMXInnoInit;
begin
  FMXLabel  := InitLabelHandle;
end;

procedure FMXDesigning;
begin
  FMXLabel.FCreate(FMXForm.Handle, '');
  if wGetDriveMediaType('D') = 0 then
  begin
  FMXLabel.Text('UNKNOWN');
  end;
  if wGetDriveMediaType('D') = 3 then
  begin
  FMXLabel.Text('HDD');
  end;
  if wGetDriveMediaType('D') = 4 then
  begin
  FMXLabel.Text('SSD');
  end;
  if wGetDriveMediaType('D') = 5 then
  begin
  FMXLabel.Text('SCM');
  end;
  FMXLabel.Left(50);
  FMXLabel.Top(50);
  FMXLabel.FontSetting('Segoe UI', 16, ALBlack);
end;

Code:

var
  FMXLabel  : FLabel;

procedure FMXInnoInit;
begin
  FMXLabel  := InitLabelHandle;
end;

procedure FMXDesigning;
begin
  FMXLabel.FCreate(FMXForm.Handle, '');
  case wGetDriveMediaType('D') of
  0: FMXLabel.Text('UNKNOWN');
  3: FMXLabel.Text('HDD');
  4: FMXLabel.Text('SSD');
  5: FMXLabel.Text('SCM');
  end;
  FMXLabel.Left(50);
  FMXLabel.Top(50);
  FMXLabel.FontSetting('Segoe UI', 16, ALBlack);
end;


crachlow 24-08-2023 10:45

Quote:

Originally Posted by audiofeel (Post 502086)
and if like this? even better...
Code:

procedure DiskListOnChange(Sender: TObject);
var
  S: String;
begin
  S := DirEdt.GetText;
  StringChange(S, ExtractFileDrive(S), DiskList.GetSelectedDisk);
  DirEdt.Text(S);
  case wGetDriveMediaType(S) of
  0: FMXLabel.Text('Unknown');
  3: FMXLabel.Text('HDD');
  4: FMXLabel.Text('SSD');
  5: FMXLabel.Text('SCM');
  end;
end;


Well, what did you do?

crachlow 24-08-2023 11:55

It's bad that usb does not recognize.

BLACKFIRE69 26-08-2023 14:16

FMXInno - Updates
 
Update available!


Quote:

Originally Posted by audiofeel (Post 502001)
@BLACKFIRE69
I understand that the scale function is in the process of being finalized and tested ... but could you at least temporarily fix this bug. When the user changes the desktop scale from the recommended system (i.e. 100%) then "FFolderTreeView" floats away and is not visible. This appeared on the latest dll.
--
But the good old "FDirBrowse" feels much better. And it scales correctly. Somehow it even became a shame for "FFluentDirBrowse".


the FluentApi v2.0 update was responsible for this problem, however, it has been successfully addressed and fixed.


https://i.ibb.co/r6dv6gN/01.gif


Quote:

Originally Posted by hitman797 (Post 502044)
FMXInno Viewport 3D Example using:
@BLACKFIRE69
HI, BLACKFIRE69
Thank you for the update.
Can you add BringToFront to "FLayer3D".


this update brings more properties to classes, and that includes this one too.

NOTE:
This update involves modifications to certain functions/procedures, which might require adjustments to current scripts.

https://i.ibb.co/2WhFn28/00.png
https://i.ibb.co/VTNMGC0/01.png



Quote:

Originally Posted by crachlow (Post 502089)
const
HDD_MEDIA_TYPE_UNKNOWN = $0000;
HDD_MEDIA_TYPE_HDD = $0003;
HDD_MEDIA_TYPE_SSD = $0004;
HDD_MEDIA_TYPE_SCM = $0005;



It's bad that usb does not recognize.


Ok, let's update the wGetDriveMediaType function.


Code:

function wGetDriveMediaType(const DriveLetter: WideString): Integer;

function wGetDriveMediaTypeEx(const DriveLetter: WideString;
  out HealthStatus, Usage: Integer): Integer;


Code:

{ Drive Media Type }
const
  HDD_MEDIA_TYPE_UNKNOWN        = $0000;
  HDD_MEDIA_TYPE_USB            = $0001;
  HDD_MEDIA_TYPE_SD            = $0002;
  HDD_MEDIA_TYPE_HDD            = $0003;
  HDD_MEDIA_TYPE_SSD            = $0004;
  HDD_MEDIA_TYPE_SCM            = $0005;
  HDD_MEDIA_TYPE_NVMe          = $0006;

{ Drive Health }
const
  HDD_HEALTH_STATUS_HEALTHY    = $0000;
  HDD_HEALTH_STATUS_WARNING    = $0001;
  HDD_HEALTH_STATUS_UNHEALTHY  = $0002;
  HDD_HEALTH_STATUS_UNKNOWN    = $0005;

{ Drive Usage }
const
  HDD_USAGE_UNKWOWN            = $0000;
  HDD_USAGE_AUTO_SELECT        = $0001; // used for data storage.
  HDD_USAGE_MANUAL_SELECT      = $0002; // used if manually selected by an administrator at the time of virtual disk creation.
  HDD_USAGE_RETIRED            = $0004; // retired from use
  HDD_USAGE_CACHE              = $0005; // used as a cache for other devices.



the first post has been updated.


.

macut18 26-08-2023 18:08

#Script1.iss
when i already installed the first game The next game will be on the same drive as the first game installed.

https://i.imgur.com/aq8niZC.jpg

ScOOt3r 26-08-2023 18:47

@macut18 yes i currently use this script for my Repacks and you cant install 2 games with it in the same spot as it will do that.. but i just install one test it and then remove it..

ScOOt3r

macut18 27-08-2023 02:48

Quote:

Originally Posted by audiofeel (Post 502128)
It doesn't completely fix it, but it's a little better

The problem was solved, thank you very much. :)

hitman797 27-08-2023 04:34

Quote:

Originally Posted by audiofeel (Post 502131)
Somebody....I need help
You need to hide the buttons - AboutTabControl.TabPosition(tpNone);
But at the same time, my other custom buttons behave strangely, which are not related to this - AboutTabBtn[1]
If you specify like this - AboutTabControl.TabPosition(tpDots);
Then everything is fine, but I need to hide the dots

Code:

  AboutTabControl.FCreate(AboutPage.Handle);
  AboutTabControl.SetBounds(100, 130, 1046, 448);
  AboutTabControl.TabPosition(tpNone);

  for i:= 1 to 3 do
  begin
    AboutTabItem[i].FCreateEx(AboutTabControl.Handle);
    AboutLbl[i].FCreate(AboutTabItem[i].Handle);
    AboutLbl[i].FontSetting('{#Font}', VCLFontSizeToFMX(22), ALWhiteSmoke);
    AboutLbl[i].TextSetting(False, txCenter, txCenter);
    AboutLbl[i].SetBounds(0, 18, 1046, 24)

    AboutMemo[i].FCreate(AboutTabItem[i].Handle, True);
    AboutMemo[i].SetBounds(28, 59, 1017, 358);
    AboutMemo[i].FontSetting('{#Font}', VCLFontSizeToFMX2(12), ALWhiteSmoke);
    AboutMemo[i].WordWrap(True);
    AboutMemo[i].ReadOnly(True);
    AboutMemo[i].ScrollAnimation(True);
  end;

  AboutLbl[1].Text(AnsiUppercase('About Game'));
  AboutLbl[2].Text(AnsiUppercase('About Repack'));
  AboutLbl[3].Text(AnsiUppercase('Credits'));

  AboutMemo[1].AddLine(CnvtToWStr(S1));
  AboutMemo[2].AddLine(CnvtToWStr(S2));
  AboutMemo[3].AddLine(CnvtToWStr(S3));

  AboutTabBtn[1].FCreate(AboutTabControl.Handle);
  AboutTabBtn[1].SetBounds(572, 590, 50, 30);
  AboutTabBtn[1].FillColor({#Color1});
  AboutTabBtn[1].StrokeColor({#Color2});
  AboutTabBtn[1].StrokeSetting(1.0, scFlat, sdSolid, sjMiter);
  AboutTabBtn[1].CornerStyle(16, 16, [tcTopLeft, tcBottomLeft], ctBevel);
  AboutTabBtnLbl[1].FCreate(AboutTabBtn[1].Handle);
  AboutTabBtnLbl[1].Text(#$E938);
  AboutTabBtnLbl[1].Align(Client)
  AboutTabBtnLbl[1].AutoSize(True);
  AboutTabBtnLbl[1].TextSetting(False, txCenter, txCenter);
  AboutTabBtnLbl[1].FontSetting('Segoe MDL2 Assets', 14, ALBlack);
  AboutTabBtnLbl[1].OnMouseEnter(@CommonMouseEnter);
  AboutTabBtnLbl[1].OnMouseLeave(@CommonMouseLeave);
  AboutTabBtnLbl[1].OnClick(@CommonOnClick);

  AboutTabBtn[2].FCreate(AboutTabControl.Handle);
  AboutTabBtn[2].SetBounds(622, 590, 50, 30);
  AboutTabBtn[2].FillColor({#Color1});
  AboutTabBtn[2].StrokeColor({#Color2});
  AboutTabBtn[2].StrokeSetting(1.0, scFlat, sdSolid, sjMiter);
  AboutTabBtn[2].CornerStyle(16, 16, [tcTopRight, tcBottomRight], ctBevel);
  AboutTabBtnLbl[2].FCreate(AboutTabBtn[2].Handle);
  AboutTabBtnLbl[2].Text(#$E937);
  AboutTabBtnLbl[2].Align(Client)
  AboutTabBtnLbl[2].AutoSize(True);
  AboutTabBtnLbl[2].TextSetting(False, txCenter, txCenter);
  AboutTabBtnLbl[2].FontSetting('Segoe MDL2 Assets', 14, ALBlack);
  AboutTabBtnLbl[2].OnMouseEnter(@CommonMouseEnter);
  AboutTabBtnLbl[2].OnMouseLeave(@CommonMouseLeave);
  AboutTabBtnLbl[2].OnClick(@CommonOnClick);


hitman797 27-08-2023 06:14

Quote:

Originally Posted by audiofeel (Post 502136)
@hitman797
Thanks for the support. This did not solve the problem, (the buttons you pointed to AboutTabControl) they move along with AboutTabItem[i]. For now, I just increased the width and hid the dots under my buttons.
https://youtu.be/c802o9WLJDE?si=RL6W_PkPQK2Uzite

you need 2 TabControl
add 1 TabItem in TabControl1
and add the buttons in TabItem in TabControl1.
in TabControl2 add TabItem[i] in TabItem[i] add Memo[i].

crachlow 27-08-2023 08:35

3 Attachment(s)
Dear Blackfire69. Could you clarify about FUserInfo. As you wrote in the examples, this is not quite suitable, at least for Windows 11. Unknown is displayed in it. If this function defines only the administrator from under the built-in account, and the user from the user group, then this is not entirely correct, probably. I tried to determine by type sid like this
Code:

var
  UserSidType: Integer;
    s1 : String;
...............................
      s1 := Copy(UserInfo.SID,42,3)+Copy(UserInfo.SID,45,1);
      UserSidType := StrToInt(s1);
      if UserSidType > 1000 then
      UserSidType := 1001 ;
    // SUserType
  case UserSidType of
    500: UserTypeStr := 'Administrator';
    1001: UserTypeStr := 'Standard User';
    else
      UserTypeStr := 'Unknown';
  end;

But @audiofeel says it doesn't work, or it works intermittently.
And if the user, administrator rights? Whereas? Could you clarify this issue.

crachlow 27-08-2023 09:31

Maybe it's because of the localization of the system?
https://i.ibb.co/58rbxkp/2023-08-27-175746.png

BLACKFIRE69 28-08-2023 00:35

FMX - News Updates
 
Quote:

Originally Posted by crachlow (Post 502144)
Dear Blackfire69. Could you clarify about FUserInfo. As you wrote in the examples, this is not quite suitable, at least for Windows 11. Unknown is displayed in it. If this function defines only the administrator from under the built-in account, and the user from the user group, then this is not entirely correct, probably. I tried to determine by type sid like this

But @audiofeel says it doesn't work, or it works intermittently.
And if the user, administrator rights? Whereas? Could you clarify this issue.

Maybe it's because of the localization of the system?



i just updated it. it may work.




Quote:

Originally Posted by audiofeel (Post 502142)
...
I just changed the form to 'FCreateBlankForm'. A white square appeared again at startup, but without a glitch in 'FTabControl'.



this 'white square' issue can be bypassed. however, after doing so, you'll need to call 'FMXForm.Show' following the 'FMXDesigning' procedure; otherwise, it won't display anything. if this solution works for you, i'll implement this fix in the next update.


(the DLL file in the example is in developer mode, so please refrain from using it in the main stream.)



if i specify the changes in the code:

Code:

procedure InitializeWizard();
begin
  ...
  FMXDesigning;
  // New - FMXInnoDev.dll: [2023-08-28]
  Page1.Visible(False);
  Page2.Visible(False);
  Page3.Visible(False);
  Page4.Visible(False);
  Page5.Visible(False);

  FMXForm.Show;
  //
  ...
end;


procedure CurPageChanged(CurPageID: Integer);
begin
  ...
  if CurPageID = wpWelcome then
  begin
    ...
    if FMXFirstRun then
    begin
      FMXFirstRun := false;
      // New
      //Page1.AnimDelay(0.5);
      //
    end else
      Page1.AnimDelay(0);
    ...
  end;
  ...
end;


.

crachlow 28-08-2023 08:05

Quote:

Originally Posted by audiofeel (Post 502155)
I meant that the same file shows a different result. My account is Microsoft and in the Administrators group.
User Unknown

I guess that
case IsAdminLoggedOn of
0: UserTypeStr := 'Group Users';
1: UserTypeStr := 'Group Administrators';
and GetUserNameString;
from innosetup works more correctly. In Russian localization UserInfo.UserType, and maybe in others, does not work at all, it is also difficult to determine by sid, because sid will be different in different localizations.

BLACKFIRE69 28-08-2023 16:23

Quote:

Originally Posted by crachlow (Post 502162)
I guess that
case IsAdminLoggedOn of
0: UserTypeStr := 'Group Users';
1: UserTypeStr := 'Group Administrators';
from innosetup works more correctly.


Code:

{Setup]
...
PrivilegesRequired=admin    --->    'Admin'    (IsAdminLoggedOn is True)
PrivilegesRequired=lowest    --->    'Standard' (IsAdminLoggedOn is False)


hitman797 29-08-2023 01:24

Quote:

Originally Posted by audiofeel (Post 502174)
Does anyone have the black and white 'Windows11' style in 'FMXInno' that works really and correctly? I found a couple of styles. One is very good (displays the Switch and CheckBox in the correct size, and not small like other options). But unfortunately it has 'Right Border and LeftBorder' (I can't edit it in text style.) . That is, there will be artifacts around the edges.
:rolleyes:

Windows 10 for FMX
FMX Styles
Windows 11 for VCL
VCL Styles

hitman797 29-08-2023 03:18

Quote:

Originally Posted by audiofeel (Post 502177)
Well, I saw that. 39 bucks for styles? It's not for us

There is no style for Windows 11 for FMX only Windows 10.

crachlow 30-08-2023 00:20

Quote:

Originally Posted by BLACKFIRE69 (Post 502167)
Code:

{Setup]
...
PrivilegesRequired=admin    --->    'Admin'    (IsAdminLoggedOn is True)
PrivilegesRequired=lowest    --->    'Standard' (IsAdminLoggedOn is False)


I didn't understand much. In the first case, Privileged= require elevated rights (via the User Account Management dialog box) to perform the installation. In the second IsAdminLoggedOn=Returns True if the user who started the installer/uninstaller is a member of the local Administrators group
https://i.ibb.co/qkTghLR/2023-08-30-124000.png
https://i.ibb.co/bbzydjt/2023-08-30-124232.png
https://i.ibb.co/Sv5fvDg/2023-08-30-124405.png
PrivilegesRequired=admin ---> 'Admin' (IsAdminLoggedOn is True)
PrivilegesRequired=lowest ---> 'Standard' (IsAdminLoggedOn is False)
it's not the same

BLACKFIRE69 30-08-2023 23:33

FMXInno - Updates
 
FMXInno - Updates : [2023-August-31]

Code:

* Added TImageList.
* Added TSpeedButton.
* Added TCornorButton.
* Added TMultiView.
* Added TShadowTextClassic.
* Added new functions.
* Added new properties.
* Included the fix for the 'white-square' issue during loading.
  - Don't forget to call the 'FMXForm.Show' after the 'FMXDesigning' procedure.

* Fixed DrawFrame.
* Some improvements and bug fixes.

------------------------------------------------------------------------------------------------------------------------------

Quote:

Originally Posted by Cesar82 (Post 500879)
@BLACKFIRE69, I don't follow your project very much, but I have a question.
Is it possible to define shadows in the labels and define a position for them with respect to the text like in CIU?
If you still don't have support for this, it would be interesting to have X and Y options to move the shadow with a default value of 1px position in relation to left and Top, or parameters for X and Y position for the shadow, with the default position being the shadow exactly in the position of the text.
Code:

procedure ShadowSetting(FColor: Integer; FOpacity, FSoftness: Single; FPosX, FPosY: Integer);


now we've the 'TShadowTextClassic' class, which allows users to change the position(X, Y) of the shadow.

Code:

procedure Shadow(FColor: TAlphaColor; OffsetX, OffsetY: Single);
------------------------------------------------------------------------------------------------------------------------------

Quote:

Originally Posted by audiofeel (Post 502133)
@BLACKFIRE69
Thanks for the update. Please answer, Can you make it so that you can take the icons from the system and not take them with you. By simply specifying the file index and icon, as is possible for any file on the system. And for displaying disks, and for displaying buttons "close the window", "minimize the window" and for many others. If not, then I'm just passing by.


i've added three new functions to help accomplish this.

Code:

function wGetSysDefaultIcons(const Src: WideString; SHLIcoSize: Cardinal; const Buffer: PAnsiChar; var Count: Cardinal): Integer;
function wGetSysDefaultIcons2(const Src, OutImgFile: WideString; SHLIcoSize: Cardinal): Boolean;
function wGetSysDefaultIconsSize(const Src: WideString; SHLIcoSize: Cardinal): Integer;

these functions allow you to extract icons in different sizes as listed below.

Code:

const
  SHL_ICO_SZ_LARGE              = $0000;  // 32x32 pixels.
  SHL_ICO_SZ_SMALL              = $0001;  // 16x16 pixels.
  SHL_ICO_SZ_EXTRALARGE        = $0002;  // 48x48 pixels.
  SHL_ICO_SZ_SYSSMALL          = $0003;  // SM_CXSMICON x SM_CYSMICON pixels.
  SHL_ICO_SZ_JUMBO              = $0004;  // 256x256 pixels. (Windows Vista and later.)

here 'Src' could be a file, directory or desktop shortcut (.lnk).

you'll find an example for this in the attachment

at the moment, if i extract icons from a windows ResDll using an index, then those icon files will only be '32x32' in maximum size. so let's use above functions.


Example:
Code:

{ GetSysDefaultIcons }
  if wGetLogicalDriveList(ADrvLst, CDrvIdx) then
  begin
    ASrc[1] := ADrvLst[CDrvIdx];
    ASrc[2] := ADrvLst[Length(ADrvLst) -1];
  end else
  begin
    ASrc[1] := 'C:\';
    if wIsDriveValid('D:\') then ASrc[2] := 'D:\'
    else if wIsDriveValid('E:\') then ASrc[2] := 'E:\'
    else if wIsDriveValid('F:\') then ASrc[2] := 'F:\'
    else if wIsDriveValid('G:\') then ASrc[2] := 'G:\'
  end;

  ASrc[3] := 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe';
  ASrc[4] := 'C:\Users\' + AddBackslash(GetUserNameString) + 'Desktop';
  ASrc[5] := 'C:\Users\' + AddBackslash(GetUserNameString) + 'Downloads';
  ASrc[6] := 'C:\Users\' + AddBackslash(GetUserNameString) + 'Documents';

  P := 0; Q := 0;

Code:

for i := 1 to C_RANGE do
  begin
    if i = (C_RANGE div 2) + 1  {i =4} then
    begin
      P := 0; Q := 160;
    end;

    AImage[i].FCreate(FMXForm.Handle);
    AImage[i].SetBounds(NSX(P + 80), NSY(Q + 80), NSX(100), NSY(100));

  #ifdef AMethod1  /* Extract SysDefaultIcons into a Buffer, then load them into AImage[i]  */
    ImgSize[i] := wGetSysDefaultIconsSize(ASrc[i], SHL_ICO_SZ_JUMBO);
    if ImgSize[i] <> -1 then
    begin
      SetLength(Buffer[i], ImgSize[i]);
      if wGetSysDefaultIcons(ASrc[i], SHL_ICO_SZ_JUMBO, Buffer[i], Count[i]) <> -1 then
        AImage[i].LoadPictureFromBuffer(Buffer[i], Count[i], wmTileStretch);
    end;
  #else            /* Extract SysDefaultIcons into the TmpDir, then load them into AImage[i] */
    ImgFile[i] := ExpandConstant('{tmp}\') + IntToStr(i) + '.png';
    if wGetSysDefaultIcons2(ASrc[i], ImgFile[i], SHL_ICO_SZ_JUMBO) then
    begin
      AImage[i].LoadPicture(ImgFile[i], wmTileStretch);
    end;
  #endif

    P := P + 150;
  end;
  { GetSysDefaultIcons }


'LoadImgFromBuffer' is only supported by the 'FImage' control. Other controls will get this support in future updates.

------------------------------------------------------------------------------------------------------------------------------

Quote:

Originally Posted by audiofeel (Post 502143)
MultiView. Needed sometimes. beautiful and modern thing, it's a pity that it is not in FMXInno...:(

the 'TMultiView' class has been added. an example for this could be found in the attachment.



The first post has been updated.


.

BLACKFIRE69 31-08-2023 01:05

FMXInno - Updates
 
HotFix: 01

- Fixed for Windows 10 Users.

.

Fak Eid 31-08-2023 06:17

1 Attachment(s)
@Mr.BlackFire69
There seems to be few issues that might need your attention:

1. If you open the Directory Dialog Box second time, the fluent effect is disabled at certain sections (Please find the photo at the link)
Can we make the Directory box editable?

2. Padding and margins are not working on FMemo. I want the content inside FMemo to be padded at certain distance which doesn't seem to be working

3. There is also one issue with the FToggleCheckbox. IsPressed is not working.

4. Can you also enable OnChange method on FToggleCheckbox? This will be similar to FCheckbox Event. Onclick gives me before Event. It gives me the previous value before clicking. I need after Event, like after changing the toggle value of Checkbox what is the current value?

5. Is there a way to bring the Video file in the background and display text over it?


All times are GMT -7. The time now is 09:31.

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