View Single Post
  #577  
Old 10-06-2024, 12:26
BLACKFIRE69's Avatar
BLACKFIRE69 BLACKFIRE69 is offline
Registered User
 
Join Date: Mar 2019
Location: In the Hell
Posts: 688
Thanks: 481
Thanked 2,547 Times in 561 Posts
BLACKFIRE69 is on a distinguished road
Arrow FMXInno - Updates

FMXInno - Final Release [2024-June-10]


What's new:

* Merged Runtime-Scripts into this build.

* 'FNewINI' updated.

- Now you can create a 'FNewINI' from a string.
Code:
  InIStr := '[SecM]'      +#13#10+
            'Key1=Val01'  +#13#10+
            'Key2=Val02'  +#13#10+
            ''            +#13#10+
            '[SecM\SecA]' +#13#10+
            'KeyA=ValA'   +#13#10+
            'KeyB=ValB';

  ANewINI.FcreateFromString(InIStr);
* Minor bug fixes and improvements.
* And it's recommended to use the latest version of InnoSetup v6.3.0.


The first post has been updated.


If you expect the following features, let me know:
Code:
1. PDF Viewer (*.pdf).
2. Markdown Viewer (*.md).
3. HTML Viewer (*.html).

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

@Fak Eid,

* FCombineText/vertical mismatch:

- You have to use the Offset Y value to fix the vertical mismatch. (FCombineText.OffsetYText2(DY))
- Also, I removed the properties 'Text1HorzAlign' and 'Text2HorzAlign' from 'FCombineText'.

Example:

Code:
const
  c_max0 = 14;
  Pttrn  = 4; // 1, 2, 3 or 4.

procedure FMXDesigning;
var i, j, k, c_max: Integer;
begin
  ...
  if (c_max0 mod 2) = 0 then c_max := c_max0 else c_max := c_max0 - 1;

  { ACombineText }
  for i := 1 to c_max do begin
    if i <= (c_max div 2) then begin
      case Pttrn of
        1: j:=-1*(i-1);
        2: j:=-1*((c_max div 2)-i);
        3: j:=-1*Round(Abs((((c_max div 2) div 2)+1)-i));
        4: if i<=(((c_max div 2) div 2)+1) then j:=-1*(i-1) else j:=-1*((c_max div 2)-i);
        else j:=-1*(i-1);
      end;
      k:=0;
    end else begin
      case Pttrn of
        1: j:=(i-((c_max div 2)+1));
        2: j:=(c_max-i);
        3: j:=Round(Abs(((c_max+(c_max div 2)+1) div 2)-i));
        4: if i<=((c_max+(c_max div 2)+1) div 2) then j:=(i-((c_max div 2)+1)) else j:=(c_max-i);
        else j:=(i-((c_max div 2)+1));
      end;
      k:=20;
    end;
    ACombineText[i].FCreate(FMXForm.Handle,60,120+((i-1)*15)+k,'The Module Name:','FMXInno.dll',j,False);
    ACombineText[i].Text1Setting('Segoe UI', 10, ALBlack, False);
    ACombineText[i].Text2Setting('Segoe UI', 13, ALRed, False);
    ACombineText[i].Text1ShadowSetting(ALBlack, 0.2, 0.2);
    ACombineText[i].Text2ShadowSetting(ALRed, 0.1, 0.6);
    ACombineText[i].OffsetYText2(-1.5);
  end;
  ...
end;



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

@audiofeel,

* 'DrawFrame' has been updated for FFluentStartBrowse and FFluentDirBrowse.

* Setup-exiting issue for 'FOSInfo' with Windows 11 24H2 insider builds.
- In insider builds, Microsoft is pushing hard and has disabled (not deprecated) some useful features by default. This may be the reason for that.
- Once 24H2 is released, I'll update everything to be compatible with the new release.
- I don't release any fixes for beta versions, but for now, I made some modifications in this build which, if detected, may make 'FOSInfo' work with 24H2.

(I deleted the virtual machine with Win11 24H2 installed, so I couldn't test it.)
* MInI updated.

- Previous code examples may not work with the new MInI.exe.
- Now it will accept parameters in any of the following formats:

Code:
    1. /Sec=Player    || --Sec=Player      || /s=Player    || -s=Player
    2. /Sec="Player"  || --Sec="Player"    || /s="Player"  || -s="Player"
    3. /Sec='Player'  || --Sec='Player'    || /s='Player'  || -s='Player'

    4. /Sec:Player    || --Sec:Player      || /s:Player    || -s:Player
    5. /Sec:"Player"  || --Sec:"Player"    || /s:"Player"  || -s:"Player"
    6. /Sec:'Player'  || --Sec:'Player'    || /s:'Player'  || -s:'Player'

    7. /Sec Player    || --Sec Player      || /s Player    || -s Player
    8. /Sec "Player"  || --Sec "Player"    || /s "Player"  || -s "Player"
    9. /Sec 'Player'  || --Sec 'Player'    || /s 'Player'  || -s 'Player'
- Added a new function called 'CalcTotalDiskSizeByte' which calculates the total size of disks in bytes.

For that, the INI file should look like this:

Code:
[Datas]

[Datas\Data1]
File={src}\data1.bf
Size=1245

[Datas\Data2]
File={src}\data2.bf
Size=2356

[Datas\Data3]
File={src}\data3.bf
Size=4578
Code:
USAGE:   MInI.exe CalcTotalDiskSizeByte /MainSec=Datas /Key=Size

[Setup]
...
ExtraDiskSpaceRequired={#ReadMInI('CalcTotalDiskSizeByte', '/MainSec=Datas /Key=Size')}
...

- Updated Example.iss file to retrieve disk sizes and component-disk sizes at compile time.

Now everything is automated, so there's nothing to do manually.




.
Attached Images
File Type: png 1.png (18.4 KB, 127 views)
File Type: png 2.png (13.2 KB, 126 views)
File Type: png 3.png (15.6 KB, 124 views)
File Type: png 0.png (24.4 KB, 124 views)
File Type: gif 01.gif (36.0 KB, 125 views)
File Type: png x.png (17.9 KB, 126 views)

Last edited by BLACKFIRE69; 08-07-2024 at 06:53.
Reply With Quote
The Following 6 Users Say Thank You to BLACKFIRE69 For This Useful Post:
audiofeel (10-06-2024), Fak Eid (11-06-2024), hitman797 (12-06-2024), Lord.Freddy (10-06-2024), ScOOt3r (11-06-2024), Tihiy_Don (10-06-2024)