|
#316
|
||||
|
||||
|
There is no style for Windows 11 for FMX only Windows 10.
|
| Sponsored Links |
|
#317
|
||||
|
||||
|
Quote:
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 Last edited by crachlow; 30-08-2023 at 05:09. |
|
#318
|
||||
|
||||
|
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:
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:
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; 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.) 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:
The first post has been updated. . Last edited by BLACKFIRE69; 14-07-2024 at 02:03. |
| The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
|
#319
|
||||
|
||||
|
HotFix: 01
- Fixed for Windows 10 Users. . Last edited by BLACKFIRE69; 02-09-2023 at 09:09. |
|
#320
|
|||
|
|||
|
@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? Last edited by Fak Eid; 31-08-2023 at 06:25. |
|
#321
|
||||
|
||||
|
Quote:
Code:
// TabControl
type
FTabControl = interface(IUnknown)
'{4E174B91-AFAC-42FC-A740-450E6F17B9B3}'
function FCreate(FParent: TFmxObject): ITabControl;
procedure SetBounds(FLeft, FTop, FWidth, FHeight: Single);
procedure HitTest(FValue: Boolean);
procedure SetActiveTabWithTransition(const ATab: ITabItem; const ATransition: TTabTransition; const ADirection: TTabTransitionDirection);
procedure SetActiveTabWithTransitionAsync(const ATab: ITabItem; const ATransition: TTabTransition; const ADirection: TTabTransitionDirection; const AOnFinish: TNotifyEvent);
procedure FinishCurrentTabTransition;
function FindVisibleTab(var Index: Integer; const FindKind: TFindKind): Boolean;
function FindVisibleTab2(const FindKind: TFindKind): Integer;
procedure GoToActiveTab;
function GotoVisibleTab(Index: Integer; ATransition: TTabTransition; const ADirection: TTabTransitionDirection): Boolean;
function Next(ATransition: TTabTransition; const ADirection: TTabTransitionDirection): Boolean;
function Previous(ATransition: TTabTransition; const ADirection: TTabTransitionDirection): Boolean;
function First(ATransition: TTabTransition; const ADirection: TTabTransitionDirection): Boolean;
function Last(ATransition: TTabTransition; const ADirection: TTabTransitionDirection): Boolean;
function Delete(const Index: Integer): Boolean;
function HasActiveTab: Boolean;
procedure UpdateTabBarButtons;
function TabCount: Integer;
function TransitionRunning: Boolean;
procedure Align(FAlign: TAlignLayout);
function ActiveTab: ITabItem;
function ActiveTabIndex: Integer;
function GetTabItem(AIndex: Integer): ITabItem;
procedure Enabled(FEnabled: Boolean);
procedure CanFocus(FValue: Boolean);
procedure Height(FHeight: Single);
procedure Margins(FLeft, FTop, FRight, FBottom: Single);
procedure Padding(FLeft, FTop, FRight, FBottom: Single);
procedure Opacity(FOpacity: Single);
procedure Position(X, Y: Single);
procedure RotationAngle(FAngle: Single);
procedure Scale(X, Y: Single);
procedure TabHeight(FHeight: Single);
procedure TabStop(FValue: Boolean);
procedure TabPosition(FTabPosition: TTabPosition);
procedure Visible(FVisible: Boolean);
procedure Width(FWidth: Single);
procedure SetFocus;
procedure ResetFocus;
procedure AutoCapture(FValue: Boolean);
procedure DisableFocusEffect(FValue: Boolean);
procedure UpdateEffects;
procedure BeginUpdate;
procedure EndUpdate;
procedure RecalcSize;
procedure RecalcEnabled;
procedure RecalcOpacity;
procedure RecalcUpdateRect;
procedure RecalcAbsolute;
procedure Repaint;
procedure AddObject(const AObject: TFmxObject);
procedure InsertObject(Index: Integer; const AObject: TFmxObject);
procedure RemoveObject(const AObject: TFmxObject);
procedure RemoveObject2(Index: Integer);
function ContainsObject(const AObject: TFmxObject): Boolean;
procedure ExchangeObjects(const AObject1, AObject2: TFmxObject);
procedure DeleteChildren;
function IsChild(AObject: TFmxObject): Boolean;
function ChildrenCount: Integer;
procedure BringToFront;
procedure SendToBack;
procedure BringChildToFront(Child: TFmxObject);
procedure SendChildToBack(Child: TFmxObject);
function IsEquals(AObject: TObject): Boolean;
procedure SetTag(Tag: Integer);
procedure SetHint(const FText: WideString);
function GetTabHeight: Single;
function GetOpacity: Single;
function GetVisible: Boolean;
function GetHeight: Single;
function GetWidth: Single;
function GetPressed: Boolean;
function GetAutoCapture: Boolean;
function GetDisableFocusEffect: Boolean;
function GetMouseOver: Boolean;
function GetObject: LongInt;
function GetTag: Integer;
function GetParent: Longint;
procedure OnClick(Event: TNotifyEvent);
procedure OnMouseDown(Event: TMouseEventF);
procedure OnMouseMove(Event: TMouseMoveEventF);
procedure OnMouseUp(Event: TMouseEventF);
procedure OnMouseEnter(Event: TNotifyEvent);
procedure OnMouseLeave(Event: TNotifyEvent);
procedure OnMouseWheel(Event: TMouseWheelEvent);
procedure OnResize(Event: TNotifyEvent);
procedure OnResized(Event: TNotifyEvent);
procedure OnActivate(Event: TNotifyEvent);
procedure OnDeactivate(Event: TNotifyEvent);
procedure OnCanFocus(Event: TCanFocusEvent);
procedure OnKeyDown(Event: TKeyEvent);
procedure OnKeyUp(Event: TKeyEvent);
function Handle: TFmxObject;
procedure Free;
end;
|
|
#322
|
||||
|
||||
|
use FFolderTreeView / FStartMenuFolderTreeView
Code:
// Folder TreeView
type
FFolderTreeView = Interface(IUnknown)
'{22193C2C-6109-4625-92A3-6CECE9A56348}'
procedure FCreate(hHandle: HWND; FLeft, FTop, FWidth, FHeight: Integer; const ADir: WideString);
procedure NewFolder(const Folder: WideString);
procedure ChangeDirectory(const ADir: WideString);
procedure OnChange(FEvent: TNotifyEvent);
function GetCurrrentDir: WideString;
procedure Left(FLeft: Integer);
procedure Top(FTop: Integer);
procedure Width(FWidth: Integer);
procedure Height(FHeight: Integer);
procedure Hide;
procedure Show;
function GetObject: Longint;
function HandleHWND: HWND;
procedure Free;
End;
// StartMenu Folder TreeView
type
FStartMenuFolderTreeView = Interface(IUnknown)
'{22193C2C-6109-4625-92A3-6CECE9A56348}'
procedure FCreate(hHandle: HWND; FLeft, FTop, FWidth, FHeight: Integer; const ADir: WideString);
procedure NewFolder(const Folder: WideString);
procedure ChangeDirectory(const ADir: WideString);
procedure OnChange(FEvent: TNotifyEvent);
function GetCurrrentDir: WideString;
procedure Left(FLeft: Integer);
procedure Top(FTop: Integer);
procedure Width(FWidth: Integer);
procedure Height(FHeight: Integer);
procedure Hide;
procedure Show;
function GetObject: Longint;
function HandleHWND: HWND;
procedure Free;
End;
|
|
#323
|
||||
|
||||
|
Quote:
Code:
FMXForm.CanvasQuality(cqHighPerformance); done. Quote:
Quote:
Quote:
Code:
new property: procedure OnChange(Event: TNotifyEvent); there's no way until now. Last edited by BLACKFIRE69; 02-09-2023 at 09:08. |
|
#324
|
|||
|
|||
|
This doesn't fix it. It's happening same in the WPI Corepack.iss file you created and shared initially on the same forum. let me know, if it can help if I share the installer script?
Code:
DirBrowseDlg.FCreate('Select Install Directory', WizardForm.DirEdit.Text, True, False, 0.35, 0);
DirBrowseDlg.TextFontSettings('Bellefair Regular', VCLFontSizeToFMX2(14), {#Color});
|
|
#325
|
|||
|
|||
|
@Blackfire69
When trying to edit the directory box, weird things are happening. Like it's not proper like FEdit. Backspace to delete does something else. Moving the cursor to a location and editing edit something else completely. I posted my Directory creation code in the post above. Let me know if I'm doing something wrong. Can you please check? Last edited by Fak Eid; 05-09-2023 at 10:52. |
|
#326
|
||||
|
||||
|
Quote:
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); Last edited by hitman797; 02-09-2023 at 00:43. |
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (01-09-2023) | ||
|
#327
|
|||
|
|||
|
Thanks for that advice earlier, I implemented the same on my installer. I just wanted to know if padding was not working or I was doing it wrong. Thanks to @Blackfire69 for clarification.
Quote:
|
| The Following User Says Thank You to Fak Eid For This Useful Post: | ||
audiofeel (01-09-2023) | ||
|
#328
|
||||
|
||||
|
i'm working on an update. some users have mentioned that the installer appears too small at higher DPI values. can you guys test this on higher DPI settings and let me know how it looks and if it has the correct scaling?
![]() Attachment: Last edited by BLACKFIRE69; 02-09-2023 at 09:07. |
|
#329
|
||||
|
||||
|
Quote:
now it should work. . Last edited by BLACKFIRE69; 14-07-2024 at 02:04. |
| The Following 4 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
|
#330
|
||||
|
||||
|
Quote:
the new update will fix this. |
![]() |
|
|
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 |