LMD VCL - Updating Projects

From LMD
Jump to: navigation, search

<< Back to Getting started page


LMD 2021 Series

Deprecated Files

  • LMD TextPack - moved to legacy. No longer installed by default in compiled installers. Activate the Extended Compatibility Package when you still need these controls.
  • LMDXML implementation - moved to legacy. Delphi's Xml should be used instead. No longer installed by default in compiled installers. Activate the Extended Compatibility Package when you still need this feature. New LMDXmlUtils unit has been added to provide some utils, which previously were a part of LMDXML unit, like CreateXmlDocument, LoadXmlDocument functions, etc.
  • LMD PNG implementation is removed. Delphi's PNG support should be used instead.
  • LMDUnicodeStrings unit - the whole unit is deprecated:
    • TLMDWideStrings -> TStrings
    • TLMDWideStringList -> TStringList
  • LMDTypes unit - deprecated types:
    • TLMDString -> String
    • TLMDChar -> Char
    • PLMDChar -> PChar
    • TLMDStrings -> TStrings
    • TLMDStringList ->TStringList
  • LMDUnicodeControl unit:
    • Renamed to LMDHintHooks
    • No longer relates to Unicode support in our libraries.
  • LMDUnicodeCtrls unit - the whole unit is deprecated:
    • TLMDWideButton -> TButton
    • TLMDWideCheckBox -> TCHeckBox
    • TLMDWideRadioButton -> TRadioButton

Unicode Support

Starting from 2021 release LMD libraries support only Unicode IDE version. Standard Delphi's String and Char (PChar) types should now be used instead of deprecated TLMDString and TLMDChar (PLMDChar) types.

Since TLMDString type was used previously in parameters of control's events the following error can occurs while trying to modify/save old forms:

Изображение 2021-04-08 161640.png

In this case all TLMDString occurrences should be replaced with String in the corresponding *.pas file. Unfortunately, there was no way to deprecate TLMDString type without encountering such inconvenient situations.


LMD 2009 Series

Deprecated Files

    • LMDXPThemeManager (obsolete, replaced by LMDThemes).
    • LMDXPStyles (obsolete)
    • intfLMDThemes.pas (obsolete)
  • LMD-Tools
    • LMDRgnShadow.pas (obsolete)
    • LMDHintWindow.pas (obsolete)
    • LMDNativeHintWindow.pas (obsolete)
    • LMDShapeHintWindow.pas (obsolete)
  • LMD ElPack
    • All old ElThemes*.pas files (obsolete)
  • LMD ShellPack
    • LMDShCmp50 (obsolete)
    • LMDShNtfCmn (obsolete)
    • LMDSHXPRes (obsolete)
  • ScriptPack
    • pLMDSctPE.pas (obsolete)
  • StoragePack
    • LMDStorWndProc.pas (obsolete)
  • WebPack
    • LMDWUSupport.pas (obsolete)


LMD 2007 Series


Feature Notes

TLMD3DCaption, TLMDFxCaption

Under Vista: Tracing property --> AutoSize no longer work correctly when Tracing feature is used

LMD Shell Tab

All 4 components of LMD Shell tab are now part of LMD ShellPack

Unit name changes


Features of LMDCPGet unit were splitted to following new units: pLMDCPGetCore and pLMDCPGetMain


Several featurs of LMDGraph.pas were moved to LMDGraphUtils.pas (Simply adding LMDGraphUtils.pas to uses clause solves this problem)

LMD Packs

LMD BarPack

  • LMDBarCommon unit is no longer used
  • LMDBarCtlXPSupported --> LMDApplication.XPThemesSupported (unit LMDClass).

LMD RichPack

  • LMDRichRumpTo --> LMDFireURL (LMDProcs)
  • Several basic routines in LMDRTFBase.pas can now be found in LMDProcs and LMDUtils shared RTL units.
  • Conversion routines can now be found in LMDConversion.pas unit.

LMD ShellPack

  • Unit LMDShCmp50 is no longer available, simply remove from uses clause.
  • TLMDSystemFolder types (sfDesktop, sfMyComputer etc.) are now defined in LMDShUtils unit.
  • LMDDirectoryExists method removed, use DirectoryExists method from VCl (filectrl unit).
  • LMDSHXPRes.pas, res removed completely. Use shared LMDXPRes.pas instead.

LMD SysPack

  • Several basic routines in LMDSysBase.pas can now be found in LMDProcs, LMDSysIn and LMDUtils shared RTL units.

LMD WebPack

  • ReplaceStr --> LMDAnsiReplacestr (LMDStrings unit)

LMD ElPack

  • if TElFString is used => uses ..., LMDTypes
  • replace:
    • ElUnicodeStrings -> LMDUnicodeStrings
    • TElBorderSides -> TLMDBorderSides
    • TElBkGndType -> TLMDBackgroundType (type with many new gradient's styles)
  • if you get message "The <Method Name> method referenced by <Form Name>.<Event Name> has an incompatible parameter list. Remove the reference?" then you need to replase TElFString on TLMDString in <Form Name>.<Event Name>
  • ElUxTheme -> LMDXPStyles
  • ThemesAvailable -> XPThemesAvailable
  • DrawArrow -> LMDDrawArrow (LMDGraphUtils)
  • FireURL -> LMDFireURL (LMDProcs)
  • GetOwnerFrameForm -> LMDGetOwnerFrameForm (LMDProcs)
  • GetOwnerForm -> LMDGetOwnerForm (LMDProcs)

A lot of basic routines in ElStrUtils can now be found in LMDUnicode.pas or LMDStrings.pas. Usually the new name is equal old name with LMD prefix (ex: WideStrAlloc -> LMDWideStrAlloc) but several was renamed. You can find the list of this exclusions below:

  • CompareWideStr -> LMDWideCompareStr
  • SameWideStr -> LMDWideSameStr
  • IsDigit -> LMDAnsiIsNumeric
  • IsDigitStr -> LMDAnsiIsNumericStr
  • uni2uppers, uni2lowers was moved to LMDUnicode without renaming
  • WideTrimLeft -> LMDWideTrimL
  • WideTrimRight -> LMDWideTrimR
  • const SPathDelimiters, SWidePathDelimiters -> LMDPathDelimiters, LMDWidePathDelimiters
  • GetWideStringOf -> LMDWideGetStringOf
  • GetWideCharRangeString -> LMDWideGetCharRangeString
  • H2D -> LMDAnsiH2D
  • H2DDef -> LMDAnsiH2DDef
  • IsAlpha -> LMDAnsiIsAlpha
  • StrStartsWith -> LMDAnsiStrStartsWith
  • ContainsAt -> LMDAnsiContainsAt
  • SetWideString -> LMDWideSetString

A lot of basic routines in ElVCLUtils can now be found in other modules such as LMDGraphUtils, LMDProcs etc. Usually the new name is equal old name with LMD prefix. Exclusions:

  • GradientFill -> LMDGradientPaint (parameters are little changed)

Functions from ElCBFmts has moved to LMDUtils

  • GetFormatName -> LMDGetClipboardFormatName
  • GetFormatIndex -> LMDGetClipboardFormatIndex
  • HasFormat -> LMDHasClipboardFormat
  • ElGraphics.ElDrawSmoothLine -> LMDGraphUtils.LMDDrawSmoothLine

Functions from ElInprocHookAPI has moved to LMDInprocHookAPI

  • TElList -> TLMDObjectList

ElColor was deleted. Its functions has analog in LMDGraphUtils

  • BrightColor -> LMDColorLighter
  • DarkColor -> LMDColorDarker
  • ElExtBkgnd.ExtDrawBkgnd -> LMDGraphUtils.LMDExtDrawBkgnd
  • ElExtBkgnd2.ExtDrawBkgnd -> LMDGraphUtils.LMDExtDrawBkgnd2