LMD VCL 2022 - News

From LMD
Revision as of 14:55, 27 November 2021 by Balabuyew (talk | contribs) (LMD SyntaxEdit)

Jump to: navigation, search

<< Back to Getting started page


LMD 2022 Minor releases: LMD 2022 History


Support for IDEs and operating systems

Major change:

  • Supports any Delphi/C++Builder VCL release version XE2 or better (including new Delphi/C++Builder 11 Alexandria).
  • 64bit support for all releases!
  • Supported IDEs
    • Delphi XE2 and better
    • C++ Builder XE2 and better
    • All corresponding RAD Studio Products (XE2, XE3, XE4 etc.)
  • Supported operating systems
    • Windows 7 and better

For recent Delphi/C++Builder releases LMD VCL package support same platforms as the VCL which is included in the IDE. [Top]


  • New extended compatibility package which includes parts of LMD VCL which were moved to legacy package (LMD TextPack, LMD XML etc.)
  • NG Packages are now integrated into LMD installers. There are no separate NG installers any longer.
  • Demo projects are now stored in commpon documents folder (not in main folder like in previous releases)
  • Registered versions: If no license file is found, you can now pick up a valid license file from within the installers
  • All component installers are now dual signed with SHA1/SHA2 certificate.


64bit support

All packages were ported to 64bit. Exception: Compatibility controls (dcllmdlegacy) can not be used in 64bit applications.

Package naming conventions

Since LMD VCL 2012 package names have been changed to be more consistent with VCL naming convention. LMD version number and IDE version number were removed from package names. Runtime package names are prefixed now with "lmdrt", design-time package names with "dcllmd". Some examples of generated package file names are: lmdrtdocking.dcp, lmdrtdocking.bpi, lmdrtdocking.lib, dcllmddocking.dcp, dcllmddocking.bpi, dcllmddocking.lib. IDE version suffix is still included in generated "bpl", e.g. lmdrtdocking_260.bpl for Delphi 10.3 Rio.

This change simplifies porting projects (supposed they are compiled with run-time packages) to another IDE version. Since package references contain neither IDE version nor LMD platform version, migrating to a future IDE version requires almost no changes.

LMD 2022 DevUtil

The DevUtil tool was updated (e.g. with Delphi/C++Builder 11 Alexandria support) and improved. It is now easier than ever to switch between different workspaces (sets of component packages), even leaving the current IDE is no longer required!

NG packages now integrated into LMD VCL line

NG packages are now integrated into the LMD VCL line, e.g. the new NG Drag&DropPack is included in LMD-Tools/ElPack/IDE-Tools, which simplifies Drag&Drop operations within but also outside your projects enormously. [Top]

LMD 2022 Reg Utility

Since 2016 release NG Controls uses same license scheme like LMD VCL product line. Thus you can review on your machine available licenses for both LMD VCL and NG products via the RegUtility. Since version 2013 RegUtility installer copies all files to the %APPDATA%\LMD Innovative folder (instead of system folder in previous releases). As known from previous releases the new reg utilities recognize earlier license files (regardless whether they are stored in system or appdata folder), so that only one reg utility is required for current and previous licenses. [Top]

Free access to Git repositories for LMD VCL Complete

We moved our sources to new git-based project structure. All VCL Complete 2022 customers receive free access to the Git repositories (based on GitLab). Visit your customer area and use the displayed link in your 2022 license to connect to GitLab. SSO with credentials for customer area is supported). Check also Quick overview for more info. [Top]

New subscription model and new customer area

We received some criticism for our old update policy (especially observing the very fast Embarcadero release cycle and our yearly updates).
Old update policy included free minor updates with same major version number - until next major release was available. We offered only for VCL Complete packages subscription models.
Following changes were introduced with 2016 licenses:

  • Each full- or update purchase includes now a one year subscription (free-of-charge)

This one-year subscription refers to major version updates. If a new major version is released within subscription period, you'll receive automatically new version free of charge. VCL Complete customers will receive even fully new LMD VCL products released in subscription period.

  • Minor updates with same major version number are handled like before:

These updates are always free of charge for all major (products LMD-Tools, ElPack, IDE-Tools, etc.) and standalone packs. These updates are placed in our protected download areas and can be downloaded free of charge - anytime (using your registration utility).

  • What happens when subscription expires?

Subscription period refers only to the right receiving free major version updates.
If your subscription expires, your licenses behaves like before (free minor updates until next major release, perpetual use of the current license).

  • How to renew

Renewals for existing licenses will be applied as extension period to the end of your previous subscription (for example, if your subscription expires 11-Dec-2016, renewing will give you updates until 11-Dec-2017). If your existing subscription has been expired for over three months, you will receive major updates for at least 9 months from the date of renewal. Please note that the term “subscription period” refers to major updates only. As usual product licenses never expire, minor updates with same major version number are always included free of charge and so on.

  • Will I receive notification mails to renew?

We send you notification emails before subscription expires. If you don’t want to receive them, check your profile page and uncheck option “I want to receive mails about my licenses expiration”.

  • Early renewal discounts and update pricing

We honour early renewals. Check your profile page to receive personal offers. Within one year (after subscription period expired) you can renew your subscription for a special renewal rate. After that standard price applies. Upgrade orders (from pre-2016 releases) as known before (to start initial subscription period) will be possible until end of 2016.
To reflect new changes we introduced a new customer area, where customers can review and check license status at one single place.

Package Changes


LMD Tools

Font image list auto re-coloring for VCL styles

Starting from 2022 release TLMDFontImageList introduces auto re-coloring of system colors like clHighlight or clWindowText to fit the corresponding VCL Style color. The feature is enabled by default, but can be disabled using new StyleElements property.

Also, new OnAdjustColor event is provided, which allows modify the color of each image separately.

4307ddbb-6f05-4287-b5d0-483ea734c427.png E01225e7-5457-46af-a532-b73947dd27fc.png

352b9bbe-1eca-480b-a14e-507d368652d4.png Bc1d1bfd-df53-4f81-9158-b48970fd1861.png

Replica image lists

Replica image lists are intended to be used as secondary image lists, for example, DisabledImages or HotImages of the TToolBar control.

Replica image lists can be created from the TLMDFontImageList's component context menu. Replica list images are automatically synchronized with the main source image list. However, the size, margin and color can be redefined. To prevent unintended redefinition ParentColor and ParentSize (Width, Height and Margin) properties allow to keep the corresponding properties synced with the main image list.

Replica image lists can be selected in IDE designer via the component context menu, as well as from the Structure view. Replicas be deleted by holding Ctrl key while clicking on context menu item, or via usual IDE Delete in Structure view.




Font collection

TLMDFontCollection provides the possibility to use so called private fonts, which are fonts, loaded during the application run-time, without installing them inside the operating system. Private icon fonts opens a way to use much more font icons than the standard Windows 10 assets font, called Segoe MDL2 Assets, provides. Font collection allow to load:

TLMDFontImageList component provides the FontSource property, which allows to link a font collection to it.





LMD PrintPack

Print preview dialog got new font icons (turned on by default). The corresponding UseFontImages (default - True) and FontImagesColor (default - clWindowText) properties have been added to TLMDPrintToolBar and TLMDPrintPreviewDialog components.

The following new method overloads have been added to TLMDPrinter class: ExecPreviewDlg, ExecPrintSetupDlg and ExecPageSetupDlg. Overloads provides configure callback parameter. The parameter allow to configure dialogs just before execution (for example, set UseFontIcons property, etc.). Similar methods are added for TLMDRichPack control.


Font icons benefit from the on-the-fly re-coloring feature for different VCL Styles.


LMD RichPack

!!! description

 1 procedure TForm1.Button1Click(Sender: TObject);
 2 var
 3   rw: TLMDInsertRow;
 4 begin
 5   rw.Alignment := raCenter;
 6   rw.Height := 500;
 7   rw.AddCell(1500, caTop);
 8   rw.AddCell;
 9   rw.AddCell;
11   LMDRichEdit1.InsertTable(5, rw);
12 end;






LMD SyntaxEdit

New color schemes have been created for LMD SyntaxEdit controls: VS Code like and Delphi like, light and dark, with normal and bold keywords.











Changes/Enhancements since initial LMD VCL 2021 release

LMD Common

[+] RAD Studio 11.0 (Alexandria) support added for all products.
[*] TControl.WindowProc hooking re-implementation (global centralized - less conflicts)
[*] LMD VCL Complete / NG Complete: NG ConnectionPack was extracted from the installers (now available as separate downloads). Reason: ConnectionPack libraries are very extensive and have enormously enlarged the Complete Installer.
[*] Component icons update: both 32 and 24 bit icons are now provided (depending of IDE version) for NG packs, LMD-DialogPack and LMD-Spell packs.
[*] Updated LMD Innovative icon for Delphi 11 splash screen and about box.
[*] Installers: Shortcut to samples folder in startmenu added. It was not clear for some users that samples/demos are installed into the public documents folder (like RAD Studio demos). This is now also explicitly mentioned in installer and installation documentation.
[*] Documentation for LMD VCL - DevUtil updated.
[*] DevUtil design update.
[-] Several fixes for demos (DockingPack, SyntaxEdit, NG ConnectionPack etc.).
[-] Fixed: Some controls displayed wrong package names in About box.
[-] Component icon glitches in some IDE versions fixed.

LMD Tools

[+] TLMDFontImageList: New DisabledStyle (saturate, alpha) and DisabledAlpha properties.
[+] TLMDFontImageList: Replica secondary image lists, auto synchronized with the Source list. Menu items in component editor, ParentColor and ParentSize properties, etc..
[+] TLMFFontCollection: Component for using custom icon fonts without installation.
[+] TLMDHint: New EnableHTML property
[+] TLMDDBMaskEdit: Decimals property published.
[+] TLMDCheckListDlg: New writable DefaultChecked[Index] property has been added which provides an easy access to individual bits of DefaultValue property.
[+] TLMDForm: soGlobalVclStyle option is added to IniSaveOptions to allow to save/restore the current VCL Style.
[+] TLMDStringList: New SaveAsText property for saving items strings as a text in dfm (customer wish).
[*] TLMDStringList: component editor re-layout , themed IDE colors adjustments and new font icons.
[-] Several DB-controls: Adjustment of interaction with data link. This fixes a reported problem where in egdge cases undesired actions in read-only mode were possible.
[-] TLMDCalendarEdit: Drop-down layouting fixes.
[-] TLMDSplitterPanel: Design-time sprigs (see TreeIntf.pas) which prevents adding/deleting items from Bars collection.
[-] TLMDSplitterPanel: Bars property editor dialog layout fixes.
[-] Combobox drawing fixes (native theme mode).
[-] TLMDButton: republishing ImageMargins property.
[-] LMDClass: "Published field 'Handler' is not a class or interface type" error fix.
[-] Native themes glyphs (like combo box button arrow) drawing bug fix.
[-] Small hook control fix.
[-] TLMDHiTimer: bug fixes, small rework.

LMD ElPack

[+] TElComboBox: Drop-down position adjustment on a multi-monitor system.
[+] TElCalendarDialog: New OnCustomize event, analogous to LMD-Tools dialogs.
[+] TElCalendarDialog: New Position and RelatePos properties. New ExecuteEnh method. Analogous to LMD-Tools dialogs.
[-] TElMemo: Copy to clipboard bug fix.
[-] ElTrayInfo: corrupted dfm bug fix.
[-] ElStyleManager: component editor bug fix.

LMD DockingPack

[+] New TabCaption and AutoHideCaption properties.
[+] Scaling of UndockWidth and UndockHeight values.
[+] New OnUpdateHotspotsEx event (AClient parameter added).
[-] Small GDI related fix.

LMD DialogPack

[-] Password dialogs layouting bug fix.

LMD RichPack

[+] New TextAttributes properties: Bold, Italic, Undeline, Strikeout.
[+] New ParaAttributes properties: ConsistentAttributes. New RichEdit properties: ScrollPosition, ShowURLHint.
[+] New Transparent, SpellChecking, TextDocument and TextDocument2 properties.
[+] New InsertTable method along with TLMDInsertRow, TLMDInsertCell, TLMDInsertCellBorder support data classes.
[+] New LinkOptions property added, which allows to control jumping between hyper-text storage items, and, as well, jumping to bookmarks.
[+] New TLMDRichHyperText.GoToEx overloaded methods. Allows jumping between hyper-text storage items, and, as well, jumping to bookmarks.
[+] Ctrl+B, Ctrl+I and Ctrl+U shortcuts.
[+] Ctrl+M and Ctrl+Shift+M shortcuts for indentation.
[+] TOM2 interfaces has been added to LMDRTFInt.pas unit.
[+] Font icons option in generated toolbars.
[+] Font icons in design-time editor toolbars.
[+] Integration of PrintPack dialogs: TLMDRichEdit.PreviewDialog, TLMDRichEdit.PagePropertiesDialog, TLMDRichEdit.Print.
[+] New TLMDRichEdit.PrinterSetupDialog.
[+] New LMDRichGetPrinter() global function and LMDGetPrinterProc callback.
[+] New PrinterSetupDialog and PagePropertiesDialog overloads with configure callback parameter.
[+] Ruler VCL Styles support.
[+] New Demo Center demos:

  • Hyper-text demo.
  • Shortcuts demo.
  • Actions demo.
  • Printing demo.
  • Runtime demo.
  • TOM2 demo.
  • And more…

[*] Gutter look improvements.
[*] Combo boxes Flat style drawing improvements (not ideal).
[*] Screen.ActiveControl instead of Focused in actions.
[*] Actions do not get disables when font or font-size combo boxes are active.
[*] TLMDDBRichEdit - rework of interaction with dataset.
[-] Slow design-time editor showing bug fix.
[-] Built-in print preview layout fixes.
[-] Rich edit ruler indents recalculation (when Measurement changed) bug fix.
[-] Dialogs layout and font fixes.
[-] TLMDRichCharmapDialog high DPI layouting and drawing fixes.
[-] TLMDDBRichEdit blob fields handling fixes (including NVARCHAR(MAX)).
[-] Print page width and margin fixes.
[-] Fixing hyper-text features in RichEdit4.

LMD PrintPack

[+] Font images in preview dialog.
[+] TLMDPrintPreviewDialog: UseFontIcons and FontIconsColor properties.
[+] TLMDPrintToolBar: UseFontIcons and FontIconsColor properties.
[+] New ExecPreviewDlg, ExecPrintSetupDlg and ExecPageSetupDlg overloads with configure callback parameter.
[+] Preview dialog VCL Styles support (font images color), main panel area color.
[-] Minor page setup layout fix.

LMD DesignPack

[+] Text clipboard format support added (use ClipboardFormat = 'Text').

LMD ScriptPack

[+] Importer files for new VCL version in 11.0 (Alexandria) updated.
[*] Importer Wizard icons update.

LMD SyntaxEdit

[+] New VS Code like color themes (light and drak, bold keywords and normal).
[+] New Delphi code editor based color schemes (dark and light, bold keywords and normal).
[*] Now RegisterDragDrop/RevokeDragDrop is called internally only if vsDragDropEditing view settings flag is set (compatibility with NG Drag&DropPack).
[*] Document will no longer be marked as modified on identical replaces via Find/Replace dialog.
[-] CSS comments bug fix.

NG DialogPack

[+] New InputPos and MinInputWidth properties, which allows to layout input control.
[+] New NGDialogs.DefaultInputPos and NGDialogs.DefaultMinInputWidth properties.
[+] New InputPos, HorzInputPos and VertInputPos overloaded methods in TInputBuilder.

NG Serialization

[-] Small bug fix :).