View Single Post
  #7  
Old 27-08-2024, 10:53
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 Cumulative Update - 2024/Aug/28 ]


--- Changelog

Code:
* Added Custom Blueprints:
  1. 'FAdvancedMemo'
  2. 'FAdvancedShape'
  3. 'FAdvancedNotification'

* Deprecated:
  - 'pWinNotification' has been removed.
  - The example 'Example_WinNotifications.iss' has been removed.

* Enhancements:
  - Auto-Dark Mode: Added support for auto-dark mode in 'FCustomFluentWindow'.
  - Updated Components:
    - Updated all classes and custom blueprints.
    - Updated gradient color settings.
    - Updated 'MInI'.
    - Updated 'xBass' plugin to the latest version.
    - Updated 'WebView2' to the latest version.

  - Error Handling: Improved error handling and messages.
  - FMXInnoShutdown Function: Enhanced for a smoother exit.
  - FMXInnoShutDownUn: Now defined by default in 'FMXInnoHandle.iss'. 
    You need to remove it from your scripts.

* Fixes:
  - Fixed null pointer access errors.
  - Fixed runtime errors reported by users and discovered during debugging.
  - Fixed memory deallocation issues at exit.

* Future Updates:
  - Advanced 3D objects and 3D animations are planned for future releases.

* Miscellaneous:
  - Various other improvements and bug fixes.

Advanced Notification:

Quote:
* Refer to the attached examples for guidance on creating notifications with items, interacting with them, and updating them in real-time.

* The code snippet is provided below:
Code:
procedure CsNotifyOnActivated(Sender: INotification; nArguments: WideString; nUserInput: INotificationUserInput);
begin
  MemLog.Clear;

  if Sender = csNotification1.Handle then
  begin
    case nArguments of
      'send'    : MemLog.AddLine('* Send button clicked!'#13#10);
      'ok'      : MemLog.AddLine('* Ok button clicked!'#13#10);
      'cancel'  : MemLog.AddLine('* Cancel button clicked!'#13#10);
      ''        : MemLog.AddLine('* Clicked on the content!'#13#10);
      else
        MemLog.AddLine('Args:'#9 + nArguments + #13#10);
    end;

    // Textbox input
    if csNotifyBuilder1.IsUserInputValueExist(nUserInput, 'txtbx_id1') then   
      MemLog.AddLine('> Input Text:'#9#9'[' + csNotifyBuilder1.GetUserInputValueStr(nUserInput, 'txtbx_id1') + ']');

    // Selectbox input
    if csNotifyBuilder1.IsUserInputValueExist(nUserInput, 'selbx_id1') then   
      MemLog.AddLine('> Shutdown Timer:'#9'[' + csNotifyBuilder1.GetUserInputValueStr(nUserInput, 'selbx_id1') + ' Minutes]');
  end;
end;
Code:
  // Content
  csNotifyContent1.FCreate;
  //csNotifyContent1.Scenario(nsIncomingCall);
  csNotifyContent1.UseButtonStyle(True);                          // For Ok, Cancel button style.
  csNotifyContent1.Duration(ndLong);                              // Duration: [Short == 2 sec | Default == 5 sec | Long == 25 sec]
  csNotifyContent1.AddInputTextBox(csContentTextBox1.Handle);     // Textbox
  csNotifyContent1.AddSelectionBox(csContentSelectBox1.Handle);   // Selectbox
  csNotifyContent1.AddButton(csContentBtnSend.Handle);            // Send Button
  csNotifyContent1.AddButton(csContentBtnCancel.Handle);          // Cancel Button
  csNotifyContent1.AddButton(csContentBtnOk.Handle);              // Ok Button

  csNotifyContent1.AddImage(csContentHeaderImage.Handle);         // Header Image
  csNotifyContent1.AddImage(csContentAppImage.Handle);            // App Image
  csNotifyContent1.AddText(csContentCaption1.Handle);             // Caption
  csNotifyContent1.AddText(csContentDesc1.Handle);                // Description
  
  csNotifyContent1.AddAudio(csContentAudio.Handle);               // Audio

    // Notification
  csNotification1.FCreate(csNotifyContent1.Handle, csNotifyBuilder1.Handle);

  if not csNotification1.ParamIsValueExists('my_desc') then
    csNotification1.ParamSetValue('my_desc', sDesc);

  csNotification1.OnActivated(@CsNotifyOnActivated);  // OnActivate
  csNotification1.OnDismissed(@CsNotifyOnDismissed);  // OnDismissed
  csNotification1.OnFailed(@CsNotifyOnFailed);        // OnFailed

    // Show Notification
  csNotifyBuilder1.ShowNotification(csNotification1.Handle);

Advanced Shapes:

Quote:
* To create advanced graphic shapes, you'll need the corresponding SVG data for the shapes you wish to design. There're various methods to obtain SVG data, but i won't go into detail on that here.
* Ensure that you adjust and resize the SVG data to match your intended dimensions, as advanced shapes do not automatically handle this for you.
* You can use the simple tool 'TxtToDelphiStr.exe' to easily convert SVG data into Delphi/Inno strings.

* For more information on SVG data, refer to the following links:

1. w3.org/SVG
2. css-tricks.com/SVG-Syntax

* Below is a code snippet:
Code:
  { AdvancedShape }
  csShapeData := 'M 249.2615 123.1455' +#13#10+
    'c 18.9705 -33.9615 -4.257 -74.7495 -42.94 -78.602 l -14.116 -1.4065' +#13#10+
    'c -10.295 -1.0265 -19.491 -5.487 -27.1315 -14.064' +#13#10+
    'c -26.5925 -29.8475 -76.1095 -22.477 -92.41 13.382' +#13#10+
    'c -3.97 8.733 -11.149 15.719 -20.214 19.672 l -19.8865 8.67' +#13#10+
    'c -31.6995 13.82 -42.447 52.167 -22.424 79.5915 l 12.618 17.2815' +#13#10+
    'c 2.7405 3.754 4.741 7.9035 5.9465 12.333 l 6.266 23.0365' +#13#10+
    'c 8.5835 31.5575 44.3775 48.61 75.6205 35.3465 l 2.675 -1.1355' +#13#10+
    'c 7.9505 -3.3755 16.996 -4.1935 25.466 -2.308 l 41.024 9.1345' +#13#10+
    'c 39.9665 8.899 75.195 -25.787 66.27 -63.9125 l -5.192 -22.1755' +#13#10+
    'c -2.1015 -8.9765 -0.762 -18.39 3.772 -26.506 l 4.656 -8.3375 z';

  csShape.FCreate(FMXForm.Handle);
  csShape.SetBounds(65, 80, 265, 260);
  csShape.Data_Str(csShapeData);
  csShape.Data_WrapMode(spwmOriginal);
  csShape.FillGradient($FF69EACB, $FF6654F1, gsLinear);


The first post has been updated—check it out!



.
Attached Images
File Type: png a1.png (73.9 KB, 681 views)
File Type: png a2.png (75.1 KB, 683 views)
File Type: png a3.png (70.6 KB, 682 views)
File Type: png a4.png (69.9 KB, 676 views)
File Type: png a5.png (68.5 KB, 675 views)
File Type: png b1.png (52.3 KB, 682 views)
File Type: png c1.png (77.0 KB, 674 views)
File Type: png c2.png (58.3 KB, 675 views)
File Type: png c3.png (62.8 KB, 684 views)
File Type: png c4.png (43.0 KB, 675 views)
File Type: gif c5.gif (1.46 MB, 679 views)
File Type: gif c6.gif (68.6 KB, 679 views)
Attached Files
File Type: rar FMXInno - New Examples [Aug-28].rar (10.42 MB, 98 views)
File Type: rar Verify FMXInno [2024-Aug-28] RAR Archive.rar (146.0 KB, 54 views)
Reply With Quote
The Following 14 Users Say Thank You to BLACKFIRE69 For This Useful Post:
ADMIRAL (02-03-2025), audiofeel (27-08-2024), Behnam2018 (27-08-2024), Ele (27-08-2024), Fak Eid (28-08-2024), hitman797 (30-08-2024), Jahan1373 (28-08-2024), joker85 (18-06-2025), Lord.Freddy (27-08-2024), observer23232 (27-08-2024), Qirashi (26-12-2024), ScOOt3r (27-08-2024), Tihiy_Don (29-08-2024), Wanterlude (11-09-2024)