|
|
|
#1
|
||||
|
||||
|
Quote:
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 }
. Last edited by BLACKFIRE69; 14-07-2024 at 02:07. |
| The Following 3 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
| Sponsored Links |
|
#2
|
||||
|
||||
|
Quote:
Delphi/FMX: How to add a dynamically created top-aligned component . Last edited by BLACKFIRE69; 14-07-2024 at 02:07. |
| The Following 3 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
|
#3
|
||||
|
||||
|
Quote:
i'm not sure. could you provide an example or explain further? |
| The Following User Says Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (15-09-2023) | ||
|
#4
|
||||
|
||||
|
FMXInno - Updates
FMXInno - Updates: 2023-Sep-15
The latest version has been added to the first post. |
|
#5
|
||||
|
||||
|
if you are talking about Custom MultiView, you need to plan it out a bit more thoroughly than this. . Last edited by BLACKFIRE69; 14-07-2024 at 02:07. |
|
#6
|
||||
|
||||
|
Quote:
screenshot: . Last edited by BLACKFIRE69; 14-07-2024 at 02:08. |
|
#7
|
||||
|
||||
|
OnMouseEnter is Trigger to start animation.
OnMouseLeave is Trigger to Reverse animation. You can use OnClick. |
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (15-09-2023) | ||
|
#8
|
||||
|
||||
|
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. . Last edited by BLACKFIRE69; 14-07-2024 at 02:08. |
| The Following 5 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (19-09-2023), Fak Eid (20-09-2023), hitman797 (19-09-2023), Lord.Freddy (19-09-2023), Tihiy_Don (19-09-2023) | ||
|
#9
|
||||
|
||||
|
I think the problem is in the arrangement.
|
|
#10
|
||||
|
||||
|
Quote:
Code:
FMXColorAnimation[1].StopAtCurrent; FMXColorAnimation[1].SetColors(FMXComboColorBox[2].GetColor, FMXComboColorBox[1].GetColor); FMXColorAnimation[1].Start; Code:
FMXArc[2].StrokeColor(FMXComboColorBox[3].GetColor); FMXCircle[5].StrokeColor(FMXComboColorBox[3].GetColor); FMXRectangle[87].FillColor(FMXComboColorBox[3].GetColor); Last edited by hitman797; 25-09-2023 at 14:45. |
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (25-09-2023) | ||
|
#11
|
||||
|
||||
|
Quote:
Code:
FMXTabItem[11] in FMXLayer3D[2]. FMXTabItem[4] in FMXLayer3D[1]. |
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (25-09-2023) | ||
|
#12
|
||||
|
||||
|
Quote:
Code:
[Component0] Name=Core files Size=30000 [Component1] Name=Need For Speed Underground Size=30000 [Component2] Name=Need For Speed Underground 2 Size=30000 [Component3] Name=Need For Speed Most Wanted 05' Size=30000 [Component4] Name=Need For Speed Carbon Size=30000 [Component5] Name=Need For Speed Pro Street Size=30000 [Component6] Name=Need For Speed Undercover Size=30000 [Component7] Name=Need For Speed Shift Size=30000 [Component8] Name=Need For Speed Hot Pursuit Size=30000 [Component9] Name=Need For Speed The Run Size=30000 [Component10] Name=Need For Speed Shift 2 Unleashed Size=30000 [Component10] Name=Need For Speed Most Wanted 12' Size=30000 [Component11] Name=Need For Speed Rivals Size=30000 [Component12] Name=Need For Speed 15' Size=30000 Code:
function GetIniBool(const Section, Key: String; const Default: Boolean; const Filename: String): Boolean; function GetIniInt(const Section, Key: String; const Default, Min, Max: Longint; const Filename: String): Longint; function GetIniString(const Section, Key, Default, Filename: String): String; |
|
#13
|
||||
|
||||
|
Quote:
Code:
var
MyArr: array of Integer;
procedure FMXInnoInit;
var
I: Integer;
begin
SetArrayLength(MyArr, 38);
for I := 0 to 37 do
begin
case I of
0..11 : MyArr[i] := 7 + I; // 7..18
12..16 : MyArr[i] := 20 + (I - 12); // 20..24
17..21 : MyArr[i] := 35 + (I - 17); // 35..39
22..26 : MyArr[i] := 50 + (I - 22); // 50..54
27..31 : MyArr[i] := 62 + (I - 27); // 62..66
32 : MyArr[32] := 75; // 75
33..35 : MyArr[i] := 84 + (I - 33); // 84..86
36 : MyArr[36] := 93; // 93
37 : MyArr[37] := 97; // 97
end;
end;
end;
procedure OnChange(Sender: TObject);
var
I: Integer;
begin
case Sender of
TObject(FMXComboColorBox[1].GetObject):
begin
FMXArc[1].FillColor(FMXComboColorBox[1].GetColor);
for I := Low(MyArr) to High(MyArr) do
FMXRectangle[MyArr[I]].FillColor(FMXComboColorBox[1].GetColor);
end;
end;
end;
Last edited by BLACKFIRE69; 28-09-2023 at 16:50. |
|
#14
|
||||
|
||||
|
Quote:
Code:
var
MyArr: array of Integer;
procedure FMXInnoInit;
var
I: Integer;
begin
SetArrayLength(MyArr, 38);
for I := 0 to 37 do
begin
case I of
I=(0..11) : MyArr[i] := 7 + I; // 7..18 // 7 + 11 = 18;
I=(12..16) : MyArr[i] := 20 + (I - 12); // 20..24 // 20 + (16 - 12)= 24;
I=(17..21) : MyArr[i] := 35 + (I - 17); // 35..39 // 35 + (21 - 17)= 39;
I=(22..26) : MyArr[i] := 50 + (I - 22); // 50..54 // 50 + (26 - 22)= 54;
I=(27..31) : MyArr[i] := 62 + (I - 27); // 62..66 // 62 + (31 - 27)= 66;
I=(32) : MyArr[32] := 75; // 75 // 75;
I=(33..35) : MyArr[i] := 84 + (I - 33); // 84..86 // 84 + (35 - 33)= 86;
I=(36) : MyArr[36] := 93; // 93 // 93;
I=(37) : MyArr[37] := 97; // 97 // 97;
end;
end;
end;
procedure OnChange(Sender: TObject);
var
I: Integer;
begin
case Sender of
TObject(FMXComboColorBox[1].GetObject):
begin
FMXArc[1].FillColor(FMXComboColorBox[1].GetColor);
for I := Low(MyArr) to High(MyArr) do
FMXRectangle[MyArr[I]].FillColor(FMXComboColorBox[1].GetColor);
end;
end;
end;
|
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (29-09-2023) | ||
|
#15
|
||||
|
||||
|
Quote:
it's not a big deal. Code:
var
...
mListBox : FListBox;
mListBoxItem: array of FListBoxItem;
...
procedure FMXInnoInit;
begin
...
mListBox := InitListBoxHandle;
...
end;
procedure InitializeWizard();
begin
...
FMXDesigning;
FMXForm.Show;
mListBox.SetItemIndex(2); // i-1
...
end;
procedure ListBoxOnChange(Sender: TObject);
begin
if mListBox.GetItemIndex > -1 then
WinTB1.Text('Selected Drive: [' + mListBox.GetItemText(mListBox.GetItemIndex) + ']');
end;
Code:
procedure FMXDesigning;
var
i, CDrvIdx: Integer;
ADrvLst: TArrWStr;
begin
...
if not wGetLogicalDriveList(ADrvLst, CDrvIdx) then
begin
Log('"wGetLogicalDriveList" failed!');
MsgBox('"wGetLogicalDriveList" failed!', mbError, MB_OK);
// try another way.
end;
{ ListBox }
mListBox.FCreate(FMXForm.Handle);
mListBox.SetBounds(NSX(32), NSY(53), NSX(297), NSY(249));
mListBox.OnChange(@ListBoxOnChange);
{ Items }
SetArrayLength(mListBoxItem, GetArrayLength(ADrvLst));
mListBox.BeginUpdate;
for i := 0 to GetArrayLength(ADrvLst) - 1 do
begin
mListBoxItem[i] := InitListBoxItemHandle;
mListBoxItem[i].FCreate(mListBox.Handle);
mListBoxItem[i].Text(ADrvLst[i]);
mListBox.AddItem(mListBoxItem[i].Handle);
end;
mListBox.EndUpdate;
...
end;
. Last edited by BLACKFIRE69; 14-07-2024 at 02:09. |
![]() |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Windows Fluent Effects Standalone API - InnoSetup / VCL / FXM | BLACKFIRE69 | Conversion Tutorials | 0 | 15-11-2023 17:35 |
| Windows Phone Installer similar to razor12911's original design? | Kitsune1982 | Conversion Tutorials | 0 | 02-07-2020 13:04 |
| INDEX - Conversion Tutorial Index | Razor12911 | Conversion Tutorials | 5 | 11-06-2020 02:05 |
| Frequently Asked Questions | Joe Forster/STA | PC Games - Frequently Asked Questions | 0 | 29-11-2005 09:48 |