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)

BYRedex 13-09-2023 08:14

2 Attachment(s)
Hi! What about rounding out the shape?
I want to use "FMXForm.FCreateNormal(WizardForm.Handle);" so that I can put any image on top of the form and it will be rounded.

On the screenshots you can see it perfectly well, everything turns out using this:

Code:

function SetWindowRgn(hWnd: HWND; hRgn: LongWord; bRedraw: BOOL): Integer;
external '[email protected] stdcall';

SetWindowRgn(FMXForm.Handle, FormRegion, True);

But then the form and FMX live separately, i.e. the FMX layer moves on the WizardForm form.

SetWindowRgn works only with "FMXForm.FCreateNormal", I want to have the same view for all systems (from Win7 to 11) and have the ability to set parameters of form rounding.

BLACKFIRE69 13-09-2023 08:17

Quote:

Originally Posted by audiofeel (Post 502471)
@BLACKFIRE69

Is it impossible to get an icon to display by the icon index?
wGetSysDefaultIcons2

something like this...

%SystemRoot%\System32\SHELL32.dll, -123



maximum size will be 32x32. if this is ok to you, let me know.


.

BLACKFIRE69 13-09-2023 09:59

Quote:

Originally Posted by audiofeel (Post 502478)
Disappointment. The size is too small. But still this function is useful in future cases as in the screenshot below.



how about now?


.

hitman797 13-09-2023 17:03

1 Attachment(s)
Quote:

Originally Posted by audiofeel (Post 502483)
do you remember when we did the metro install? now the necessary objects have been added, but I don't understand everything. can you show an example
MultiView, SpeedBtn etc.

Metro Installer

BLACKFIRE69 14-09-2023 07:23

Quote:

Originally Posted by audiofeel (Post 502471)
@BLACKFIRE69

Is it impossible to get an icon to display by the icon index?
wGetSysDefaultIcons2

something like this...

%SystemRoot%\System32\SHELL32.dll, -123



Code:

{ ResIconSize }
const
  RIS_SMALL                    = $0001;  //  16 x 16
  RIS_MEDIUM                    = $0002;  //  32 x 32
  RIS_LARGE                    = $0003;  //  48 x 48
  RIS_EXTRA_LARGE              = $0004;  //  64 x 64
  RIS_EXTRA_EXTRA_LARGE        = $0005;  // 128 x 128
  RIS_JUMBO                    = $0006;  // 256 x 256


function wGetSysDefaultIconsFromResLib(const AModule: WideString;
  AIndex, RISIcoSize: Cardinal; const Buffer: PAnsiChar; var Count: Cardinal): Integer;

function wGetSysDefaultIconsFromResLib2(const AModule, AOutFile: WideString;
  AIndex, RISIcoSize: Cardinal): Boolean;

function wGetSysDefaultIconsSizeFromResLib(const AModule: WideString;
  AIndex, RISIcoSize: Cardinal): Integer;

Code:

{ GetSysDefaultIcons }
  AModule  := 'C:\Windows\SystemResources\imageres.dll.mun';

  AIndex[1] := 31;  // C-Drive
  AIndex[2] := 27;  // OtherDrvs
  AIndex[3] := 103; // Music
  AIndex[4] := 105; // Desktop
  AIndex[5] := 175; // Donwloads
  AIndex[6] := 107; // Documents

  P := 0; Q := 0;

  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 + 130), NSY(Q + 80), NSX(100), NSY(100));

  #ifdef AMethod1  /* Extract SysDefaultIcons into a Buffer, then load them into AImage[i]  */
    ImgSize[i] := wGetSysDefaultIconsSizeFromResLib(AModule, AIndex[i], RIS_EXTRA_EXTRA_LARGE);
    if ImgSize[i] <> -1 then
    begin
      SetLength(Buffer[i], ImgSize[i]);
      if wGetSysDefaultIconsFromResLib(AModule, AIndex[i], RIS_EXTRA_EXTRA_LARGE, 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 wGetSysDefaultIconsFromResLib2(AModule, ImgFile[i], AIndex[i], RIS_EXTRA_EXTRA_LARGE) then
    begin
      AImage[i].LoadPicture(ImgFile[i], wmTileStretch);
    end;
  #endif

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


.

BLACKFIRE69 14-09-2023 08:49

Quote:

Originally Posted by audiofeel (Post 502492)
I have a question. Five buttons, four of which are "Align Top" and the fifth "Align Bottom". Why does the fourth button come in second place?


Delphi/FMX: How to add a dynamically created top-aligned component


.

Jahan1373 14-09-2023 20:12

Quote:

Originally Posted by hitman797 (Post 502484)
Metro Installer

Hello brother, please give the complete script, where should I download it, thanks

BLACKFIRE69 15-09-2023 05:29

Quote:

Originally Posted by audiofeel (Post 502503)
@BLACKFIRE69 How to avoid animation jerks when pointing the pointer at different objects with the same task? I didn't come up with anything better, as in the code below. Everything goes smoothly but with only one object (animation).
Code:


TObject(PanelBtnClick[1].GetObject), TObject(PanelBtnClick[2].GetObject), TObject(PanelBtnClick[3].GetObject),
TObject(PanelBtnClick[4].GetObject), TObject(PanelBtnClick[5].GetObject), TObject(LeftPanel.GetObject):
begin 
  FMXForm.AnimateFloatDelay(LeftPanel.Handle, 'Width', NSX(280), 0.5, 0.2,
  atInOut, itBack);
end;

If you make an array as in the example below, there will still be jerks between objects (animation).
Code:


procedure CommonMouseEnter(Sender: TObject);
var
  i: Integer;
begin
  i := -1;
  case Sender of
    TObject(Btn[1].GetObject): i := 1;
    TObject(Btn[2].GetObject): i := 2;
    TObject(Btn[3].GetObject): i := 3;
    TObject(Btn[4].GetObject): i := 4;
    TObject(Btn[5].GetObject): i := 5;
  end;

  if i <> -1 then
    Btn[i].FontSetting('{#MyFont2Name}', NS(52), VCLColorToFMXColor($EEEE00));
end;




i'm not sure. could you provide an example or explain further?

BLACKFIRE69 15-09-2023 05:51

FMXInno - Updates
 
FMXInno - Updates: 2023-Sep-15



The latest version has been added to the first post.

BLACKFIRE69 15-09-2023 06:04

Quote:

Originally Posted by audiofeel (Post 502506)
Ok!
here is everything I had enough for)))


if you are talking about Custom MultiView, you need to plan it out a bit more thoroughly than this.


.

BLACKFIRE69 15-09-2023 06:43

Quote:

Originally Posted by BLACKFIRE69 (Post 502508)
if you are talking about Custom MultiView, you need to plan it out a bit more thoroughly than this.


.



screenshot:

.

Fak Eid 15-09-2023 08:12

@Blackfire69

If you have some time, can you please work on enabling some component over FVideoPlayer (like even FPopUpBox) will also be fine.

You can check this post for the requirement I'm asking for.
https://fileforums.com/showpost.php?...&postcount=493

hitman797 15-09-2023 11:57

Quote:

Originally Posted by audiofeel (Post 502511)
Is it necessary for OnEnter?

OnMouseEnter is Trigger to start animation.
OnMouseLeave is Trigger to Reverse animation.
You can use OnClick.

BLACKFIRE69 19-09-2023 04:19

FMXInno - Updates
 
FMXInno Moments Updates: [2023-September-19]

Code:

What's New:

* Added 'FSplashAnimated' with Sounds.
* Updated 'FUserInfo'.
* Updated 'ChatGPT':
  - The example has been updated.
  - Added a simple output.

* Updated 'ISArcEx':
  - 'ISArcExReduceCalcAccuracy' is now straightforward.
  - The range of the factor has increased from 5 to 10 (1-10).
  - Factor = 1 means it delays the calculations of RemainingTime and Speeds by 0.25 seconds.
  - Factor = 2 -> delay by 0.50 seconds.
  - Factor = 3 -> delay by 0.75 seconds.
  - Factor = 4 -> delay by 1.00 seconds.
  - And so on.


The first post has been updated.

.

BLACKFIRE69 21-09-2023 05:23

Quote:

Originally Posted by hitman797 (Post 502248)
@BLACKFIRE69

CAN YOU FIX pjScreen IN FLayer3D?

Code:

  FMXLayer3D[1].FCreate(FMXViewport3D.Handle);
  FMXLayer3D[1].Align(Client);
  //FMXLayer3D[1].Projection(pjScreen);
  FMXLayer3D[1].Transparency(True);
  FMXLayer3D[1].FillColor(ALNull);
  //
  FMXLayer3D[2].FCreate(FMXViewport3D.Handle);
  FMXLayer3D[2].Align(Client);
  //FMXLayer3D[2].Projection(pjScreen);
  FMXLayer3D[2].Transparency(True);
  FMXLayer3D[2].FillColor(ALNull);



@hitman797,

there's no need for any fixes with the Projection; it's working perfectly as intended.

however, please keep in mind that you should call Projection(pjScreen) before Align(Client) to ensure proper functionality.


For additional information, please refer to this: Creating a 2D Interface in a 3D App (FireMonkey 3D)


.


All times are GMT -7. The time now is 16:52.

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