Difference between revisions of "LMD VCL - Updating Projects"

From LMD
Jump to: navigation, search
(LMD ElPack)
m (Deprecated Files)
 
(29 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== LMD-Tools ==
+
{{Head-Getting started}}[[Category:Introduction]]
  
=== Feature Notes ===
+
== LMD 2021 Series ==
  
==== TLMD3DCaption, TLMDFxCaption ====
+
=== 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:
 +
 
 +
[[file:Изображение 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.
 +
 
 +
{{Top}}
 +
 
 +
== LMD 2009 Series ==
 +
=== Deprecated Files ===
 +
* LMDRTL
 +
** 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)
 +
{{Top}}
 +
 
 +
== LMD 2007 Series ==
 +
=== LMD-Tools ===
 +
 
 +
==== Feature Notes ====
 +
 
 +
===== TLMD3DCaption, TLMDFxCaption =====
 
Under Vista: Tracing property --> AutoSize no longer work correctly when Tracing feature is used
 
Under Vista: Tracing property --> AutoSize no longer work correctly when Tracing feature is used
  
==== LMD Shell Tab ====
+
===== LMD Shell Tab =====
 
All 4 components of LMD Shell tab are now part of LMD ShellPack
 
All 4 components of LMD Shell tab are now part of LMD ShellPack
  
=== Unit name changes ===
+
==== Unit name changes ====
 
==== LMDCPGet.pas ====
 
==== LMDCPGet.pas ====
 
Features of LMDCPGet unit were splitted to following new units: pLMDCPGetCore and pLMDCPGetMain
 
Features of LMDCPGet unit were splitted to following new units: pLMDCPGetCore and pLMDCPGetMain
  
==== LMDGraph.pas ====
+
===== LMDGraph.pas =====
 
Several featurs of LMDGraph.pas were moved to LMDGraphUtils.pas (Simply adding LMDGraphUtils.pas to uses clause solves this problem)
 
Several featurs of LMDGraph.pas were moved to LMDGraphUtils.pas (Simply adding LMDGraphUtils.pas to uses clause solves this problem)
  
== LMD Packs ==
+
=== LMD Packs ===
=== LMD BarPack ===
+
==== LMD BarPack ====
 
* LMDBarCommon unit is no longer used
 
* LMDBarCommon unit is no longer used
 
* LMDBarCtlXPSupported --> LMDApplication.XPThemesSupported (unit LMDClass).
 
* LMDBarCtlXPSupported --> LMDApplication.XPThemesSupported (unit LMDClass).
  
=== LMD RichPack ===
+
==== LMD RichPack ====
 
* LMDRichRumpTo -->  LMDFireURL (LMDProcs)
 
* LMDRichRumpTo -->  LMDFireURL (LMDProcs)
 
* Several basic routines in LMDRTFBase.pas can now be found in LMDProcs and LMDUtils shared RTL units.
 
* 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.
 
* Conversion routines can now be found in LMDConversion.pas unit.
  
=== LMD ShellPack ===
+
==== LMD ShellPack ====
 
* Unit LMDShCmp50 is no longer available, simply remove from uses clause.
 
* Unit LMDShCmp50 is no longer available, simply remove from uses clause.
 
* TLMDSystemFolder types (sfDesktop, sfMyComputer etc.) are now defined in LMDShUtils unit.
 
* TLMDSystemFolder types (sfDesktop, sfMyComputer etc.) are now defined in LMDShUtils unit.
Line 32: Line 100:
 
* LMDSHXPRes.pas, res removed completely. Use shared LMDXPRes.pas instead.
 
* LMDSHXPRes.pas, res removed completely. Use shared LMDXPRes.pas instead.
  
=== LMD SysPack ===
+
==== LMD SysPack ====
 
* Several basic routines in LMDSysBase.pas can now be found in LMDProcs, LMDSysIn and LMDUtils shared RTL units.
 
* Several basic routines in LMDSysBase.pas can now be found in LMDProcs, LMDSysIn and LMDUtils shared RTL units.
  
=== LMD WebPack ===
+
==== LMD WebPack ====
 
* ReplaceStr --> LMDAnsiReplacestr (LMDStrings unit)
 
* ReplaceStr --> LMDAnsiReplacestr (LMDStrings unit)
  
== LMD ElPack ==
+
=== LMD ElPack ===
 
*  if TElFString is used => uses ..., LMDTypes <br>
 
*  if TElFString is used => uses ..., LMDTypes <br>
 
*  replace:
 
*  replace:
 
** ElUnicodeStrings -> LMDUnicodeStrings
 
** 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>
 
* 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
 
* ElUxTheme -> LMDXPStyles
 
* ThemesAvailable -> XPThemesAvailable
 
* ThemesAvailable -> XPThemesAvailable
 
* DrawArrow -> LMDDrawArrow (LMDGraphUtils)
 
* DrawArrow -> LMDDrawArrow (LMDGraphUtils)
 +
* FireURL -> LMDFireURL (LMDProcs)
 
* GetOwnerFrameForm -> LMDGetOwnerFrameForm (LMDProcs)
 
* GetOwnerFrameForm -> LMDGetOwnerFrameForm (LMDProcs)
 
* GetOwnerForm -> LMDGetOwnerForm (LMDProcs)
 
* GetOwnerForm -> LMDGetOwnerForm (LMDProcs)
 
<br>
 
<br>
A lot of basic routines in ElStrUtils can now be found in LMDUnicode.pas or LMDStrings. 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: <br>
+
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: <br>
* CompareWideStr -> LMDWideCompareStr (LMDUnicode)
+
* CompareWideStr -> LMDWideCompareStr
* SameWideStr -> LMDWideSameStr (LMDUnicode)
+
* SameWideStr -> LMDWideSameStr
* WideUpperCase -> LMDUnicodeUpper (LMDUnicode)
+
* IsDigit -> LMDAnsiIsNumeric
* WideLowerCase -> LMDUnicodeLower (LMDUnicode)
+
* IsDigitStr -> LMDAnsiIsNumericStr
* IsDigit -> LMDAnsiIsNumeric (LMDStrings)
+
* uni2uppers, uni2lowers was moved to LMDUnicode without renaming
* IsDigitStr -> LMDAnsiIsNumericStr (LMDStrings)
+
* WideTrimLeft -> LMDWideTrimL
* uni2uppers, uni2lovers was moved to LMDUnicode without renaming
+
* WideTrimRight -> LMDWideTrimR
* WideTrimLeft -> LMDWideTrimL (LMDStrings)
+
* const SPathDelimiters, SWidePathDelimiters -> LMDPathDelimiters, LMDWidePathDelimiters
* WideTrimRight -> LMDWideTrimR (LMDStrings)
+
* GetWideStringOf -> LMDWideGetStringOf
* const SPathDelimiters, SWidePathDelimiters -> LMDPathDelimiters, LMDWidePathDelimiters (LMDUnicode)
+
* 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
 +
{{Top}}

Latest revision as of 14:37, 8 April 2021

<< Back to Getting started page

[edit]

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.

[Top]

LMD 2009 Series

Deprecated Files

  • LMDRTL
    • 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)

[Top]

LMD 2007 Series

LMD-Tools

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

LMDCPGet.pas

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

LMDGraph.pas

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

[Top]