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)

Fak Eid 29-05-2024 10:48

Quote:

Originally Posted by audiofeel (Post 504663)
the proposed version of @blackfire69 is good because an ordinary user no longer needs to manually create a checkbox and set the text and its coordinates to it, just make changes to the ini file and the checkbox will appear and the necessary archive will be searched for unpacking.

I've an almost complete version of code where the user doesn't need to write any code at all for creating selective components. It's in my 'Random_Gamertags' Repack.

I've almost completed changes and currently testing this with new FNewINI

Fak Eid 04-06-2024 09:19

Issue with FCombineText
 
1 Attachment(s)
Hi @Blackfire,

Not sure if you remember I asked how can I have just 1 character space instead of Tab Space for FCombineText, and you mentioned it can be done using 0 or -1, -2, etc. The problem is, it is not working for Smaller Font Size like 12-15. The two texts are not on same height and the gap is unusual. On Larger Font Size, like 16, it is working as expected. Can you help?

Code:

SectionText[1].FCreate(SectionContent[1].Handle, 500, 15, 'Developers :', INI_DEVELOPERS, -1, False);
SectionText[1].Text1Setting('{#FontName}', 12, {#FontColor}, False);
SectionText[1].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);

SectionText[2].FCreate(SectionContent[1].Handle, 500, 35, 'Genre :', INI_GENRE, -1, False);
SectionText[2].Text1Setting('{#FontName}', 12, {#FontColor}, False);
SectionText[2].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);


hitman797 04-06-2024 11:31

Quote:

Originally Posted by Fak Eid (Post 504690)
Hi @Blackfire,

Not sure if you remember I asked how can I have just 1 character space instead of Tab Space for FCombineText, and you mentioned it can be done using 0 or -1, -2, etc. The problem is, it is not working for Smaller Font Size like 12-15. The two texts are not on same height and the gap is unusual. On Larger Font Size, like 16, it is working as expected. Can you help?

Code:

SectionText[1].FCreate(SectionContent[1].Handle, 500, 15, 'Developers :', INI_DEVELOPERS, -1, False);
SectionText[1].Text1Setting('{#FontName}', 12, {#FontColor}, False);
SectionText[1].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);

SectionText[2].FCreate(SectionContent[1].Handle, 500, 35, 'Genre :', INI_GENRE, -1, False);
SectionText[2].Text1Setting('{#FontName}', 12, {#FontColor}, False);
SectionText[2].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);


Code:

    TTextAlign = (txCenter, txLeading, txTrailing);
    procedure Text1HorzAlign(HAlign: TTextAlign);
    procedure Text2HorzAlign(HAlign: TTextAlign);


Fak Eid 04-06-2024 23:50

1 Attachment(s)
Quote:

Originally Posted by hitman797 (Post 504692)
Code:

    TTextAlign = (txCenter, txLeading, txTrailing);
    procedure Text1HorzAlign(HAlign: TTextAlign);
    procedure Text2HorzAlign(HAlign: TTextAlign);


Hi @hitman @Blackfire

Thank you. I tried and have to manually align the text for this. However, in Smaller Font Size (like 12-15), the two text still doesn't seem to be aligned height-wise. Any fix for it?

Code:

  SectionText[1].FCreate(SectionContent[1].Handle, 500, 15, 'Developers :', INI_DEVELOPERS, -1, False);
  SectionText[1].Text1Setting('{#FontName}', 12, {#FontColor}, False);
  SectionText[1].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);
  SectionText[1].Text1HorzAlign(txTrailing);
  SectionText[1].Text2HorzAlign(txTrailing);

  SectionText[2].FCreate(SectionContent[1].Handle, 505, 35, 'Genre :', INI_GENRE, -1, False);
  SectionText[2].Text1Setting('{#FontName}', 12, {#FontColor}, False);
  SectionText[2].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);
  SectionText[2].Text1HorzAlign(txTrailing);
  SectionText[2].Text2HorzAlign(txTrailing);

  SectionText[3].FCreate(SectionContent[1].Handle, 500, 55, 'Release Date :', INI_RELEASE_DATE, -1, False);
  SectionText[3].Text1Setting('{#FontName}', 12, {#FontColor}, False);
  SectionText[3].Text2Setting('{#FontName}', 12, {#SelectedFontColor}, False);
  SectionText[3].Text1HorzAlign(txTrailing);
  SectionText[3].Text2HorzAlign(txTrailing);

Another issue: InstallFMXFont sometimes hangs the launch of Setup.exe during Runtime.

Tihiy_Don 05-06-2024 04:09

Quote:

Originally Posted by Fak Eid (Post 504697)
Another issue: InstallFMXFont sometimes hangs the launch of Setup.exe during Runtime.

HI. Use new method:
Code:

function InitializeSetup: Boolean;
begin
  AddFontResource2(ExtractAndLoad('{#MyFont1}'));
  FMXInnoInit;
  Result:= True;
end;

procedure DeinitializeSetup();
begin
  RemoveFontResource2(ExpandConstant('{tmp}\{#MyFont1}'));
  ISArcExCleanUp;
  FMXInnoShutDown;
end;

Now you do not need to specify InstallFMXFont in the FMXDesigning procedure

Fak Eid 08-06-2024 15:21

Quote:

Originally Posted by Tihiy_Don (Post 504701)
Now you do not need to specify InstallFMXFont in the FMXDesigning procedure

I knew about AddFontResource2. I thought 'InstallFMXFont' was the newest thing. Sorry, I can't keep track of updates.

Quote:

Originally Posted by audiofeel (Post 504762)
in my opinion, we lack this..
Code:

    procedure Text1VertAlign(VAlign: TTextAlign);
    procedure Text2VertAlign(VAlign: TTextAlign);

:o

Yes, i believe or whatever fixes this issue on smaller fonts. One of my FMX Installer is completely dependent on the use of it and I've to wait longer just to get this fixed. Although, it is working for larger font size like 16+.

BLACKFIRE69 10-06-2024 12:26

FMXInno - Updates
 
6 Attachment(s)
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;

https://i.ibb.co/1f7HkRR/1.png


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

@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.




.

Tihiy_Don 10-06-2024 22:05

Will there be a fix for the FFormImgSlide component?

Fak Eid 11-06-2024 01:47

1 Attachment(s)
Quote:

Originally Posted by Tihiy_Don (Post 504782)
Will there be a fix for the FFormImgSlide component?

What is the issue with FFormImgSlide?

Quote:

Originally Posted by BLACKFIRE69 (Post 504778)
@Fak Eid,

* FCombineText/vertical mismatch:

Thank you that fixed all the issues with FCombineText. It is really a very important and necessary feature.

@Blackfire

I'd really like to have a 'HTML Viewer' example where I can integrate a youtube video to my installer which buffers based on internet connection instead of importing during setup.exe creation.

This is not a necessity and completely dependent if it can be implemented.
Link: https://www.skidrowreloaded.com/hori...e-v1-0-43-p2p/

Code:

<div class="html5-video-container" data-layer="0">
<video tabindex="-1" class="video-stream html5-main-video" webkit-playsinline="" playsinline="" controlslist="nodownload" style="width: 560px; height: 315px; left: 0px; top: 0px;"
src="blob:https://www.youtube.com/2ef7c9b2-0611-4dfd-b49b-4aa461f19f96" __idm_id__="2465793">
</video>
</div>


Fak Eid 12-06-2024 13:32

Abilities of FColorButton / Completely new type of Button
 
3 Attachment(s)
Right now in order to create the image I have to do an alternate like:
SettingsBtn: array[1..4] of FRectangle;
SettingsBtnIcon: array[1..4] of FText;
SettingsBtnLabel: array[1..4] of FText;

Code:

  SettingsBtn[1].FCreate(SettingsRect[1].Handle);
  SettingsBtn[1].FillColor(HTMLColorStrToFMXColor('#3d434f'));
  SettingsBtn[1].SetBounds(0, 120, 190, 40);
  SettingsBtn[1].Opacity(0.8);
  SettingsBtn[1].OnMouseEnter(@CommonMouseEnter);
  SettingsBtn[1].OnMouseLeave(@CommonMouseLeave);
  SettingsBtn[1].OnClick(@CommonClick);

  SettingsBtnIcon[1].FCreate(SettingsBtn[1].Handle);
  SettingsBtnIcon[1].Text(#57793);
  SettingsBtnIcon[1].SetBounds(0, 0, 80, 40);
  SettingsBtnIcon[1].FontSetting('Segoe UI Symbol', 18, {#SelectedFontColor});
  SettingsBtnIcon[1].HitTest(False);

  SettingsBtnLabel[2].FCreate(SettingsBtn[1].Handle);
  SettingsBtnLabel[2].Text('Directory');
  SettingsBtnLabel[2].SetBounds(60, 0, 190, 40);
  SettingsBtnLabel[2].FontSetting('{#FontName}', 16, {#SelectedFontColor});
  SettingsBtnLabel[2].TextSetting(false, txLeading, txCenter);
  SettingsBtnLabel[2].HitTest(False);

I even did an alternative using a combo of FColorButton and FCombineText, but it is not working as FCombineText doesn't have HitTest method.

Can someone suggest me any other alternative to achieve this with simple and less code. Does anyone think it is a good feature to implement? If not, I'll continue with the same code combo I was using.
procedure SetLB1Position(const X, Y: Single);
procedure SetLB2Position(const X, Y: Single);

Issue with FLabel: No Event Listeners of FLabel is responding. Edit: Fixed with HitTest(True); Thanks to audiofeel
Issue with FCombineText: No Event Listeners (getObject1, getObject2) are responding.
Enhancement on FVideoPlayer: Support for .mp4 file extension
Enhancement on FDiskList: I'd still like to see the Blue Covering Box, when set BackVisible(False). In this scenario, I'm unable to see the selected Disk. Edit : Also add, GetLB1Text. If user makes directory update to FEdit, I need to select the disk, the user has input as text. Also, display Disk Name if it exist. If not, show 'Logical Disk'

longpv818 12-06-2024 20:09

thank you so much. It's my looking.

---------------------------------------------------
Đến với TEM NHĂN CÔNG NGHIỆP THỊNH PHÁT là đến với niềm tin, đến với sự cam kết lâu dài cùng phát triển.
Với nhiều dịch vụ như làm tem inox ăn ṃn - name plate inox chuyên nghiệp trực tiếp tại xưởng. Toàn thể nhân viên luôn cam kết dịch vụ name plate inox, chất lượng cũng như giá thành tốt nhất cho tất cả khách hàng có nhu cầu làm biển hiệu công ty hoặc làm tem nhăn động cơ
Với một công ty th́ Tem nhăn động cơ là sản phẩm không thể thiếu để khách hàng thấy sự chuyện nghiệp cũng như văn hóa tốt đẹp của công ty.

Tem nhăn Thịnh Phát là đơn vị cung cấp biển inox ăn ṃn hcm, tem inox ăn ṃn cho máy móc - công tŕnh công nghiệp dân dụng ... và tem nhôm trên toàn quốc.
Những sản phẩm như biển inox ăn ṃn hoặc là biển pḥng ban th́ chúng tôi sẽ thiết kế và báo giá hoàn toàn miễn phí trước khi kư hợp đồng và sản xuất sản phẩm.
Bên cạnh đó với nhiều ưu điểm vượt trội th́ tem inox là sản phẩm được sử dụng rất phổ biến từ các máy móc gia đ́nh hằng ngày đến các công tŕnh công cộng hay các dự án công nghiệp lớn.
Để vinh danh cho nhân viên hoặc tổ chức cá nhân có thành tích hoặc thâm niên cống hiến th́ tem nhăn động cơ là một sản phẩm không thể thiếu.
Sau khi làm bảng hiệu alu hoặc làm bảng hiệu th́ các doanh nghiệp nên đặt các quà tặng doanh nghiệp để gửi tặng khách hàng đối tác để gắn kết hai công ty.
Biển bảng chỉ dẫn hay bảng hướng dẫn văn pḥng – ṭa nhà bằng kim loại vừa đảm bảo độ bền lại có tính thẩm mỹ cao đang được nhiều đơn vị lựa chọn.Tem Nhăn Thịnh Phát chuyên sản xuất trực tiếp tem inox ăn ṃn các bảng biển chỉ dẫn bằng inox ăn ṃn , đồng ăn ṃn, biển hiệu công ty , tem inox ăn ṃn giá rẻ với nhiều thiết kế đẹp và sang trọng cũng như gia công sản xuất theo thiết kế riêng theo yêu cầu,.

<img src="https://temnhanthinhphat.com/wp-content/uploads/2024/03/banner03-800x270.jpg" ]
biển chỉ dẫn inox ăn ṃn

<img src="https://temnhanthinhphat.com/wp-content/uploads/2024/03/IMG_1039-533x400.jpg" ]
biển chỉ dẫn inox ăn ṃn

<img src="https://temnhanthinhphat.com/wp-content/uploads/2024/03/img-0745-533x400.jpg" ]
biển chỉ dẫn inox ăn ṃn

<img src="https://temnhanthinhphat.com/wp-content/uploads/2024/03/img-0748-533x400.jpg" ]
biển chỉ dẫn inox ăn ṃn

<img src="https://temnhanthinhphat.com/wp-content/uploads/2024/03/img-2697-600x800.jpg" ]
biển chỉ dẫn inox ăn ṃn

<img src="https://temnhanthinhphat.com/wp-content/uploads/2020/08/engraved-stainless-steel-floor-level-signs_01.jpg" ]
Tem inox ăn ṃn giá rẻ

<img src="https://temnhanthinhphat.com/wp-content/uploads/2020/08/skinnydip-london-marine-grade-brushed-stainless-steel-engraved-etched-sign-01.jpg" ]
Bảng hướng dẫn ṭa nhà bằng inox ăn ṃn


Với kinh nghiệm nhiều năm làm tem inox bảng pḥng bằng inox và đội ngũ kỹ thuật, thiết kế nhiệt t́nh – nhiều kinh nghiệm chắc chắn sẽ mang lại cho Quư khách hàng sự hài ḷng và thỏa măn nhất từ thiết kế đến chất liệu và giá cả khi quư khách có nhu cầu làm bảng hiệu.
Đặc biệt chúng tôi khảo sát và thiết kế miễn phí trên toàn miền Nam.
Về bảng hiệu chúng tôi nhận thi công tất cả các loại biển pḥng bằng inox như :
– Bảng hiệu Alu chữ nổi
biển pḥng bằng inox , Chữ nổi Mica, Chữ nổi Alu, có đèn Led hoặc không.
– Bảng Hiệu đá granite, bảng hiệu đá hoa cương có gắn chữ inox hoặc mica.
– Bảng hiệu sau quầy tiếp tân …
– Và các loại tem inox ăn ṃn khác,

Quảng Cáo Thanh Thịnh Phát với đội ngũ kiến trúc sư, thiết kế bảng hiệu đẹp giàu kinh nghiệm, đội ngũ thợ thi công chuyên nghiệp,… chuyên thiết kế và thi công lắp đặt đa dạng các loại biển chỉ dẫn hồ bơi, biển báo hồ bơi làm bảng hiệu , biển quảng cáo đẹp như biển công ty, biển tóc, chữ nổi quảng cáo, biển đèn Led, bảng hiệu đẹp , biển quảng cáo điện tử, biển trivision, biển tấm lớn, bảng hiệu công ty hay bảng số nhà inox vàng xước .…

Không chỉ đa dạng các loại Logo inox ăn ṃn , chúng tôi c̣n làm bảng hiệu trên nhiều chất liệu khác nhau như mica, đồng ăn ṃn, bạt, Aluminum Composite, Innox, … đạt yêu cầu, chất lượng, có tính thẩm mỹ cao đáp ứng được yêu cầu của đông đảo khách hàng làm bảng hiệu công ty

CrownRepack 13-06-2024 01:16

1 Attachment(s)
Hi, can anyone help me with this error im getting, its just a simple picture i want to add to the language select startup box,

i have the necessary paths in my script but still get this error.

i already included in files section
[Files]
Source: "Files\spl.png"; DestDir: {tmp}; Flags: dontcopy

with all handles and in FMXDesigning i already
state

LangGameSplash.FCreate(LangForm.Handle);
LangGameSplash.SetBounds(5, 5, 266, 89);
LangGameSplash.FillPicture(ExpandConstant('{tmp}\s pl.png'), wmTileStretch);
LangGameSplash.HitTest(False);

but why i get this error that its not exist?

CrownRepack 13-06-2024 02:05

Nevermind guys, sorry, the problem is i put "ExpandConstant" instead of "ExtractandLoad"
ughhh

Fak Eid 13-06-2024 08:04

1 Attachment(s)
Can someone help me in creating these using style file?

Fak Eid 15-06-2024 10:45

1 Attachment(s)
Does anyone have any idea how can this be implemented?
I have SettingsForm: FCustomFluentWindow, and I just want to display this section on the form, without having another pop-up. How can this be implemented?

Like we have FStartMenuFolderTreeView, but it can only be on HWND handler, like FMXForm.HandleHWND. I'd want it inside an FCustomPage.Handle


All times are GMT -7. The time now is 06:25.

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