<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.lmd.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fduch</id>
		<title>LMD - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.lmd.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fduch"/>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php/Special:Contributions/Fduch"/>
		<updated>2026-05-09T13:47:03Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.3</generator>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_2018_-_News&amp;diff=3893</id>
		<title>LMD VCL 2018 - News</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_2018_-_News&amp;diff=3893"/>
				<updated>2018-03-13T18:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: /* Changes/Enhancements since initial LMD VCL 2017 release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Getting started}}[[Category:Introduction]]&lt;br /&gt;
'''LMD 2018 Minor releases:''' [[LMD_2018 - History|LMD 2018 History]]&lt;br /&gt;
== General ==&lt;br /&gt;
=== Support for IDEs and operating systems ===&lt;br /&gt;
* Supports any Delphi/C++Builder VCL release version 6 or better  (including new Delphi/C++Builder 10.2 Tokyo).&lt;br /&gt;
* Including 64bit support for XE2 and higher! The next Delphi/C++Builder release will be supported almost immediately after public availability.&lt;br /&gt;
* Supported IDEs&lt;br /&gt;
** Delphi 6 and better&lt;br /&gt;
** C++ Builder 6 and better&lt;br /&gt;
** Delphi 2005.NET - Delphi 2007.NET&lt;br /&gt;
** Turbo (2006) Professional versions for Delphi, C++ and Delphi.NET&lt;br /&gt;
** All corresponding Studio Products (BDS 2006, CRS 2007, CRS 2009, RAD Studio 2010, XE, XE2, XE3, XE4 etc.)&lt;br /&gt;
* Supported operating systems&lt;br /&gt;
** Win98 and WinNT4 or better (including Windows 7/8/10 or Windows Server 2016). &lt;br /&gt;
For recent Delphi/C++Builder releases LMD VCL package support same platforms as the VCL which is included in the IDE (e.g. Delphi 2009 officially supports Win2k or better only).&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== 64bit support (Delphi XE2 and higher) === &lt;br /&gt;
All packages were ported to 64bit. &lt;br /&gt;
'''Exception:''' Compatibility controls (dcllmdlegacy) can not be used in 64bit applications.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Package naming conventions ===&lt;br /&gt;
Sinde 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. &lt;br /&gt;
Runtime package names are prefixed now with &amp;quot;lmdrt&amp;quot;, design-time package names with &amp;quot;dcllmd&amp;quot;. Some examples of generated package file names are: lmdrtdocking.dcp, lmdrtdocking.bpi, lmdrtdocking.lib, dcllmddocking.dcp, dcllmddocking.bpi, dcllmddocking.lib. &lt;br /&gt;
IDE version suffix is still included in generated &amp;quot;bpl&amp;quot;, e.g. lmdrtdocking_240.bpl for Delphi 10.1 Berlin.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD 2018 DevUtil ===&lt;br /&gt;
The DevUtil tool was updated (e.g. with Delphi/C++Builder 10.2 Tokyo 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! &amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== NG 2018 Complete included in any LMD VCL Major product ===&lt;br /&gt;
All major products (LMD VCL Complete, LMD-Tools, LMD IDE-Tools and LMD ElPack) include full license of NG Complete - our latest and most up-to-date VCL controls. Besides the already known NG ConnectionPack, SerializerPack, HTMLPack, DialogPack and ValidatorPack the brand new NG Drag&amp;amp;DropPack is included, which simplifies Drag&amp;amp;Drop operations within but also outside your projects enormously.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD 2018 Reg Utility ===&lt;br /&gt;
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.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== SVN repositories replaced by Git repositories ===&lt;br /&gt;
We moved our source repositories to Git (using GitLab). This changes refers also to repositories which are available for customers. Use your known tools to access our Git repositories.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Free access to Git repositories for LMD VCL Complete / NG Complete 2018 customers! ===&lt;br /&gt;
We moved our sources to new  git-based project structure. All VCL/NG Complete 2018 customers receive free access to the Git repositories (based on GitLab). Visit your customer area and use the displayed link in your 2018 license to connect to GitLab. SSO with credentials for customer area is supported). This new feature replaces the old SVN access option, which was a paid add-on.&lt;br /&gt;
Check also [https://www.lmd.de/gitrepositories Quick overview] for more info.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== New subscription model and new customer area ===&lt;br /&gt;
We received some criticism for our old update policy (especially observing the very fast Embarcadero release cycle and our yearly updates). &amp;lt;br&amp;gt;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.&amp;lt;br&amp;gt;&lt;br /&gt;
Following changes were introduced with 2016 licenses:&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;i&amp;gt;Each full- or update purchase includes now a one year subscription (&amp;lt;b&amp;gt;free-of-charge&amp;lt;/b&amp;gt;)&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This one-year subscription refers to &amp;lt;b&amp;gt;major version updates&amp;lt;/b&amp;gt;. 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.&lt;br /&gt;
* &amp;lt;i&amp;gt;Minor updates with same major version number are handled like before:&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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).&lt;br /&gt;
* &amp;lt;i&amp;gt;What happens when subscription expires?&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Subscription period refers only to the right receiving free &amp;lt;b&amp;gt;major&amp;lt;/b&amp;gt; version updates. &amp;lt;br&amp;gt;If your subscription expires, your licenses behaves like before (free minor updates until next major release, '''perpetual''' use of the current license).&lt;br /&gt;
*&amp;lt;i&amp;gt;How to renew&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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. &lt;br /&gt;
* &amp;lt;i&amp;gt;Will I receive notification mails to renew?&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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”.&lt;br /&gt;
* &amp;lt;i&amp;gt;Early renewal discounts and update pricing&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;br&amp;gt;To reflect new changes we introduced a new [[LMD VCL - New Customer area|customer area]], where customers can review and check license status at one single place.&lt;br /&gt;
&amp;lt;br&amp;gt;{{Top}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Package Changes ==&lt;br /&gt;
Will be added with the first LMD 2018 feature release.&lt;br /&gt;
&lt;br /&gt;
== Changes/Enhancements since initial LMD VCL 2017 release ==&lt;br /&gt;
&lt;br /&gt;
=== All packages ===&lt;br /&gt;
[+] RAD Studio 10.2 Tokyo support for all main products and packages&amp;lt;br&amp;gt;&lt;br /&gt;
[*] LMD DevUtil updated to support RAD Studio/Delphi/C++ Builder 10.2 Tokyo (SVN user)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] VCLStyles support bug fixed (when system themes were disabled (e.g. Basic themes in Win7), controls did not use VCL Styles as well).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Bug fix: Problem with TLMDWideStrings.LoadFromStream.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD-Tools ===&lt;br /&gt;
[+] New LMDApplication methods: SendDataToPrevApp, RegisterDataReceiver and UnregisterDataReceiver, which allows to exchange custom data with pervious application instance.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New TLMDOneInstance events: OnSendData and OnRecevieData to exchange custom data with pervious application instance; new TLMDOneInstance helper methods: WriteAppParams and ReadAppParams. New demo for TLMDOneInstance component, which shows custom data transfer.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New TLMDClipboardMonitor component.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New TLMDLabeledDateTimePicker control.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New Xml format is now supported by TLMDIniCtrl component.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New Alignment property to TLMDEdit.CustomButtons collection item class. So, buttons can now be aligned to the left or to the right side of an edit.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDCalendar and TLMDCalendarEdit VCL-Styles support improvement.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDatePicker on zoomed displays bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDHtmlHeader: Section vertical text alignment bug has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDListBox OnHeaderDrawSection event not fired bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several minor bugfixes.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDHtmlHeaderControl text align bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDSysSystemInfo: TcpIp protocol details detection for Win10 fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCalendar: ColorScheme default value bug has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCaptionButtons: x64 bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDEdit (and descendants): Color property bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDDateTimePicker drop-down form Z-order bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShapeButton OnMouseEnter bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] IFileDialogCustomize interface bug fix (for LMD dialogs).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] RegExps - compiler warning removed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDValueComboBox/ListBox AV bug fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DockingPack ===&lt;br /&gt;
[+] New version of DockingStyle Editor (available in \tools folder). The new exe isn't packed with an exe-package (which caused some virus engines to generate false positives).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small bug, relating to floating panels Z-order has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Document tabs reordering bug has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Maximizing floating form bug fix (prevent taskbar overflow).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Maximized floating forms in multi-monitor system bug fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD GridPack ===&lt;br /&gt;
[+] OnKeyPressW Unicode event added for older Delphi versions.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDGrid: new OnGetCellColors event, which allows to change both: background and font colors for individual cells.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnKeyPress event is fired for keys, pressed in in-place editors.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar related bugs have been fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Bug in record position after Cancel or Post has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD IDETools ===&lt;br /&gt;
[+] TLMDComponentBar: New ADisplayName parameter in RegisterComponent method.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Built-in property editor for WideChar based properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Bugfix for double-calling property-editor's SetValue method on Enter key press.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Object combo-box seFont bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack ===&lt;br /&gt;
[-] TLMDDesignPanel scrollbars related bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ObjectComboBox control: VCL styles bug fixed with seFont.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD ElPack ===&lt;br /&gt;
[+] ElListBox: New DefaultItemHeight property added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Drawing of check boxes in ttmPlatform mode improved. Check boxes have now flat gray border like in VCL's TCheckListBox control.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElMenubar DisableOnDeactivate property has been added.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElTreeView.CMMouseWheel scrolling improvement&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small ElTreee HeaderHeight bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several El(X)Tree bugfixes reported in forum.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElTree: Multiselection bugfix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElHeader: Invalid designtime item index bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Property editors for headins/items in El(X)Tree controls displayed unnecessary popup windows&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElLabel placed on two TElPanels designtime drawing bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several minor TEl(X)Tree fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Multi-monitor ElMenu bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TEl(X)Tree: Reported VCL Styles related bug fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Header columns drawing bug has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small TElEdit bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHeaderControl: small drawing related bug has been changed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: OnItemCreated and OnItemDeletion events are now stored before Items property in DFM file, and so, are called during initialization of design-time configured TElXTree items.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check boxes were drawn too small in certain OS environments.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree - &amp;quot;Control has no parent window&amp;quot; bug fixed (e.g. with internal edits, only for certain VCL releases)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree &amp;quot;Control has no parent window&amp;quot; bug has been fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree scrollbar bug with Html items has been fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree Inplace-Edit font bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree repainting bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree demo small fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TELListBox - DefaultItemHeight/ItemHeight DFM bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTreeView.Paint small bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElPageControl Focus-Error bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHtmlLabel disabled color bug has been fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElScrollBar VCL Styles painting fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Main menu font change bug fix&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElScrollbox UseCustomScrollbars issue fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl controls not painted on PageControl with VCLTheme bug fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCrMD5 memory bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small TElTreeView.Paint bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack ===&lt;br /&gt;
[-] VBScript DISPATCH_PROPERTYPUT related bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD SyntaxEdit ===&lt;br /&gt;
[+] RegExp MatchPrim method stack overflow issue workaround (MaxMatchPrimDepth and RaiseMatchPrimDepthError global variables has been added).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Title property has been added to Color and Syntax scheme editing dialogs.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New Position options for Find and Replace dialogs. New FindDialogPos and FindDialogWidth global variables, which allow to store dialogs position.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CSS syntax scheme bug fix (Comment inside property).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GoToLine dialog mask bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD-StoragePack ===&lt;br /&gt;
[-] TLMDStorCustomINIVault.CustomProperties bug has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack ===&lt;br /&gt;
[*] Windows 10 version detection has been improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack ===&lt;br /&gt;
[-] Internal TLMDDbRtfEdit bug fix.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack ===&lt;br /&gt;
[*] Hash-List hash function Unicode enabled and 64bit support added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Archive ==&lt;br /&gt;
* [[LMD VCL 2017 - News|LMD VCL 2017 - What's new]]&lt;br /&gt;
* [[LMD VCL 2016 - News|LMD VCL 2016 - What's new]]&lt;br /&gt;
* [[LMD VCL 2015 - News|LMD VCL 2015 - What's new]]&lt;br /&gt;
* [[LMD VCL 2014 - News|LMD VCL 2014 - What's new]]&lt;br /&gt;
* [[LMD VCL 2013 - News|LMD VCL 2013 - What's new]]&lt;br /&gt;
* [[LMD VCL 2012 - What's New?|LMD VCL 2012 - What's new]]&lt;br /&gt;
* [[LMD VCL 2011 - What's New?|LMD VCL 2011 - What's new]]&lt;br /&gt;
* [[LMD VCL 2010 - What's New?|LMD VCL 2010 - What's new]]&lt;br /&gt;
* [[LMD VCL 2009 - What's New?|LMD VCL 2009 - What's new]]&lt;br /&gt;
* [[LMD VCL 2007 - What's New?|LMD VCL 2007 - What's new]]&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_PluginPack_tutorial_for_C%2B%2B_Builder._Part_1:_Creating_Plugin_dll&amp;diff=3857</id>
		<title>LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_PluginPack_tutorial_for_C%2B%2B_Builder._Part_1:_Creating_Plugin_dll&amp;diff=3857"/>
				<updated>2017-08-24T09:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;LMD PluginPack is set of tools which help developer to add plugins to his main application. Plugins can be used for implement features that yet unforeseen, reduse application size, with plugins you can make your application able to be extended by third-party developers&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is small tutorial how to create plugin and use it from host application using LMD PluginPack.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Part 1: Creating plugin dll ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;oflash width=&amp;quot;853&amp;quot; height=&amp;quot;684&amp;quot;&amp;gt;/uploads/8/86/Createplugin.swf&amp;lt;/oflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3856</id>
		<title>LMD VCL - Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3856"/>
				<updated>2017-08-24T08:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Section}}&lt;br /&gt;
== Videos (NEW!) ==&lt;br /&gt;
All videos contain descriptions, but no sound.&lt;br /&gt;
&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Guide for creating/changing DockingPack styles &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD NG Controls ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/connectionpack/index.html NG ConnectionPack Guide]&lt;br /&gt;
* NG DialogPack&lt;br /&gt;
** [http://files.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack Guide]&lt;br /&gt;
** [http://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dragdroppack/index.html NG Drag&amp;amp;Drop Guide] '''[NEW NG 2016]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/htmlpack/NGHTMLPack.htm NG HTML QuickStart]&lt;br /&gt;
* NG SerializerPack&lt;br /&gt;
** [http://files.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide]    &lt;br /&gt;
** [http://files.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference]   &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/ngvalidatorpack/index.html NG ValidatorPack]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DialogPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmddialogpack/index.html Documentation] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmddialogpack/frame/LMDDialogPack_UsingFrames.pdf Using frames in LMD DialogPack (PDF)], see also  ([http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/demo.zip Demo project (ZIP)])&lt;br /&gt;
* [[LMD DialogCreator Guide|DialogCreator Guide]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dockingpack/index.html LMD DockingPack] Tutorial '''[Updated LMD 2014]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Video Guide for creating/changing DockingPack styles &lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD GridPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmdgridpack/index.html LMD GridPack] Tutorial '''[NEW]'''&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD VCL Common Runtime ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/validators/index.html LMD Validator Support] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDXML_Tutorial LMDXML] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/regular_expressions.htm TLMDRegExpr Introduction] (Regular Expressions section in Syntax Schemes Language reference)&lt;br /&gt;
* [[LMD LogTools tutorial|LMD LogTools Tutorial]]&lt;br /&gt;
* [[LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll]]&lt;br /&gt;
* [[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD-Tools ==&lt;br /&gt;
* [[LMD VCL - Transparency|Semi-Transparency]]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMD_StyleManager_tutorial LMD StyleManager] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Overview LMD Themes Concepts Overview]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_GradientRenderer LMD Themes New Gradient Renderer] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Editor LMD Gradient Themes Editor] Tutorial&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/designpack/index.html LMD DesignPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/scriptpack/index.html LMD ScriptPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/index.html Creating SyntaxEdit Schemes...]&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction Video] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3855</id>
		<title>LMD VCL - Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3855"/>
				<updated>2017-08-24T08:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Section}}&lt;br /&gt;
== Videos (NEW!) ==&lt;br /&gt;
All videos contain descriptions, but no sound.&lt;br /&gt;
&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Guide for creating/changing DockingPack styles &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD NG Controls ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/connectionpack/index.html NG ConnectionPack Guide]&lt;br /&gt;
* NG DialogPack&lt;br /&gt;
* *[http:/files.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack Guide]&lt;br /&gt;
** [http:/files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dragdroppack/index.html NG Drag&amp;amp;Drop Guide] '''[NEW NG 2016]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/htmlpack/NGHTMLPack.htm NG HTML QuickStart]&lt;br /&gt;
* NG SerializerPack&lt;br /&gt;
** [http:/files.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide]    &lt;br /&gt;
** [http:/files.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference]   &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/ngvalidatorpack/index.html NG ValidatorPack]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DialogPack ==&lt;br /&gt;
*[http:s//wfileslmd.de/downloads/tutorials/lmddialogpack/index.html Documentation] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmddialogpack/frame/LMDDialogPack_UsingFrames.pdf Using frames in LMD DialogPack (PDF)], see also  ([http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/demo.zip Demo project (ZIP)])&lt;br /&gt;
*[[LMD DialogCreator Guide|DialogCreator Guide]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dockingpack/index.html LMD DockingPack] Tutorial '''[Updated LMD 2014]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Video Guide for creating/changing DockingPack styles &lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD GridPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmdgridpack/index.html LMD GridPack] Tutorial '''[NEW]'''&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD VCL Common Runtime ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/validators/index.html LMD Validator Support] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDXML_Tutorial LMDXML] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/regular_expressions.htm TLMDRegExpr Introduction] (Regular Expressions section in Syntax Schemes Language reference)&lt;br /&gt;
* [[LMD LogTools tutorial|LMD LogTools Tutorial]]&lt;br /&gt;
* [[LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll]]&lt;br /&gt;
* [[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD-Tools ==&lt;br /&gt;
* [[LMD VCL - Transparency|Semi-Transparency]]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMD_StyleManager_tutorial LMD StyleManager] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Overview LMD Themes Concepts Overview]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_GradientRenderer LMD Themes New Gradient Renderer] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Editor LMD Gradient Themes Editor] Tutorial&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/designpack/index.html LMD DesignPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/scriptpack/index.html LMD ScriptPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/index.html Creating SyntaxEdit Schemes...]&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction Video] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_NG_2015_-_News&amp;diff=3854</id>
		<title>LMD NG 2015 - News</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_NG_2015_-_News&amp;diff=3854"/>
				<updated>2017-08-18T12:51:52Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Getting started}}[[Category:Introduction]]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The new Next Generation (NG) Control Suite supplements the LMD line of products for Embarcadero Delphi/C++Builder. While LMD VCL products still (now and in the future) support legacy IDEs (Delphi/C++Builder 6 and higher), NG components make use of new IDE and language features of most recent  IDE releases (Delphi/C++Builder 2009 and above). This approach allows us to neglect compatibility issues (e.g. Unicode and Generics support) and to use ideas which are not possible with older IDEs. &amp;lt;br&amp;gt;&lt;br /&gt;
Besides that NG Controls are designed to be lightweight and task-focused. They do not represent a complete framework like the LMD VCL platform and can be used at the same time with LMD VCL controls, the VCL (and later FMX) or any other 3rd Party toolbox.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Support for IDEs and operating systems ===&lt;br /&gt;
* Compatible with Delphi and C++ Builder XE2 - XE7, including 64bit support for XE2 and higher! The next Delphi/C++Builder release will be supported almost immediately after public availability.&lt;br /&gt;
* Supported IDEs&lt;br /&gt;
** Delphi 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8 (depending on package)&lt;br /&gt;
** C++ Builder 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8 (depending on package)&lt;br /&gt;
** All corresponding Studio Products (CRS 2009, RAD Studio 2010, XE, XE2, XE3 etc.)&lt;br /&gt;
* Supported operating systems&lt;br /&gt;
** Win 2000 or better (including Windows 7 + 8). &lt;br /&gt;
&lt;br /&gt;
In current releases VCL only is (actively) supported. However for all pacckages support of FMX is in preparation (exceptions are e.g. windows only related features like the native TaskDialog implementation).&lt;br /&gt;
&lt;br /&gt;
=== 64bit support (Delphi XE2 and higher) === &lt;br /&gt;
All packages are available in 64bit versions. &amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG ConnectionPack (XE and higher only) ==&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG SerializerPack (XE and higher only) ==&lt;br /&gt;
NG SerializerPack provides the ability to serialize/de-serialize Delphi objects into various storage formats. Any public (not only published!) property can be automatically handled by the engine. This allows to write data applications in a more object oriented and simpler way. NG SerializerPack uses enhanced RTTI features and supports latest features of Delphi/C++Builder runtime (like e.g. Generics). &amp;lt;br&amp;gt;&lt;br /&gt;
Common use cases of a serialization engine are:&lt;br /&gt;
 &lt;br /&gt;
* Saving/loading application options / configuration data which are represented by typed objects.&lt;br /&gt;
* Sending business objects via net between client and server.&lt;br /&gt;
* Saving/loading CAD-like application documents, since they are usually represented at runtime in a tree-like object model.&lt;br /&gt;
* XML-support for additional 3rd party library (NativeXML) - now 3 different XML providers are supported.&lt;br /&gt;
* &amp;lt;b&amp;gt;NEW:&amp;lt;/b&amp;gt; JSON support. Either via Delphi built in JSON access (e.g. TJSONValue) or 3rd party (SuperObject).&lt;br /&gt;
* &amp;lt;b&amp;gt;NEW:&amp;lt;/b&amp;gt; Skipping of unknown members / advanced error handling during de-serialization process is now available. &lt;br /&gt;
* TDeserializer.SkipValue and TBinaryData.SkipAll methods has been added to allow users skip values while manual de-serialization. Corresponding protected method has been implemented in all supported formats. Skipping data has been optimized for speed in a binary format.&lt;br /&gt;
* OnMemberNotFound event has been added to TDeserializer class, which is executed when RTTI-based de-serialization process is unable to find de-serializing member.&lt;br /&gt;
* SkipAllAttribute and SkipMemberAttribute has been introduced. They are designed to be used as type level attributes, and allows to specify, which member names to skip without exception while de-serializing. &lt;br /&gt;
&lt;br /&gt;
See also: [http://www.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide] and [http://www.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Demos ===&lt;br /&gt;
Demo folder: &amp;lt;code&amp;gt;serialization\delphi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;serialization&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A very extensive demo project which demonstrates a common use of NG Serialization Pack: Transmitting business objects between client and server applications. An extensive object model  is created and usage of many supported attributes and creation of converter classes are demonstrated.&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;web-service&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A web service demo which loads and transfers data from the Jamendo music platform directly via REST into defined TAlbum and TTrack classes.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo which demonstrates simplicity of (de-)serializing generic TObject and TObjectList descendants from/to XML files (XMLDocument).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using the DBXJSON class (included with Delphi).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;super-object&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using SuperObject JSON library (3rd party).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;native-xml&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using Native-XML.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;omni-xml&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using OmniXML.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG HTMLPack ==&lt;br /&gt;
A set of lightweight controls for HTML display (supporting a subset of HTML tags). Advanced functionality like support of variables, internal controls, DB templates, images etc. is included.&amp;lt;br&amp;gt;Click on images below for more info.&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 File:HTMLPackNew.png|What's new&lt;br /&gt;
 File:HTMLPackFormat.png|Format tags&lt;br /&gt;
 File:HTMLListBox.jpg|HTML ListBox&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* &amp;lt;b&amp;gt;Non-DB Controls&amp;lt;/b&amp;gt;&lt;br /&gt;
** TNGHTMLLabel&lt;br /&gt;
** TNGHTMLHeaderControl&lt;br /&gt;
** TNGHTMLListBox&lt;br /&gt;
** TNGHTMLPanel&lt;br /&gt;
** TNGHTMLView&lt;br /&gt;
** TNGHTMLStringStorage&lt;br /&gt;
* &amp;lt;b&amp;gt;DB Controls&amp;lt;/b&amp;gt;&lt;br /&gt;
** TNGHTMLDBLabel&lt;br /&gt;
** TNGHTMLDBView&lt;br /&gt;
&lt;br /&gt;
=== Demos ===&lt;br /&gt;
Demo folder: &amp;lt;code&amp;gt;html\delphi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Demonstrates features of the NG HTML engine.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;controls\core&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Demonstrates non-DB aware controls of NG HTMLPack.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;controls\dbaware&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
== NG DialogPack (Delphi 2010 or higher only) ==&lt;br /&gt;
NG-DialogPack is based on the features provided by Microsoft Windows Vista Task Dialog API, which allows to create and show Windows Vista (Windows 7) like dialogs. The package extends platform API with emulation mode, which allows to use NG-DialogPack components in previous OS versions, such as Windows XP. Also, emulation mode provides additional features, such as Input Dialog, which has no analog in platform API.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim1.png|Simple Example]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
See also: [http://www.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack documentation]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== Features ===&lt;br /&gt;
NG-DialogPack package contains tree major components:&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGTaskDialog&amp;lt;/b&amp;gt; component allows to configure and show Windows Vista (Windows 7) like task dialogs. Task dialog can contain:&lt;br /&gt;
** Caption, Title and Content texts.&lt;br /&gt;
** MainIcon, which can be one of the standard icons, like Information, Warning, Error, ect.; or a custom icon.&lt;br /&gt;
** Standard buttons, such as Ok, Cancel, Yes, No, Retry, ect; or a custom buttons, with custom Caption, ModalResult and Enabled state, configurable by the user. There is the ability to show custom buttons as command links, supporting CommandLinkHint feature.&lt;br /&gt;
** Radio buttons with Caption and Enabled state configurable by the user.&lt;br /&gt;
** Progress bar with various configurable properties, such as Min, Max and Position.&lt;br /&gt;
** Expandable additional information text with expand/collapse button.&lt;br /&gt;
** Verification check-box with configurable initial check-box state and check-box caption.&lt;br /&gt;
** Footer area with FooterIcon, analogous to MainIcon, and FooterText.&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGInputDialog&amp;lt;/b&amp;gt; component allows to configure and show input dialog, which is a dialog that contains some input control, such as edit or memo, and provides a way for the user to input a value. Input dialog can contain:&lt;br /&gt;
** Caption, Title and Content texts, MainIcon, standard and custom buttons, expandable additional information, verification check-box and footer area - all these features are analogous to TNGTaskDialog.&lt;br /&gt;
** Input control, which can be configured by the user by assigning a value to InputType property. Input control can be one of the following: edit, memo, password edit, editable combo-ox, non-editable combo-box, date-time picker or a custom input control (or several controls) configured as a mini-HTML template, using TemplateHtml property.&lt;br /&gt;
** InputValue property can be used to specify initial input value, which is shown when the dialog executed. As well, InputItems property can be used to configure combo-box items.&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGMessageDialog&amp;lt;/b&amp;gt; component allows to configure and show simple message dialogs with a look, compatible with TNGTaskDialog. The main purpose of the component is to be used internally inside TNGDialogs.Message overloaded methods, so, it, probably, need not be used explicitly. The component provides a set of properties, which are analogous to Delphi standard MessageDlg function parameters.&lt;br /&gt;
 &lt;br /&gt;
First two dialog components support advanced set of features, such as callback timer, OnButtonClick event with the ability of dialog content modification from the event handler, and navigation.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Fluent Interface ===&lt;br /&gt;
We are proud to introduce a simple, very convenient API for executing dialogs. The API is organized as static methods of TNGDialogs structure, most of which are overloaded. In most cases this API allows to show required dialog writing one or just several lines of code without placing dialog components on the form. The API provides replacement for standard Delphi dialog functions, such as ShowMessage, MessageDlg, InputBox and InputQuert to allow to show dialogs, compatible with task dialog look and feel. It also contains some additional simple dialog functions, such as Error, Warning or Information. All these function are overloaded, which allows to specify only required parameters.&lt;br /&gt;
 &lt;br /&gt;
Another part of Fluent Interface API is our unique dialog builders, available for task and input dialogs. Following are some usage examples:&lt;br /&gt;
 &lt;br /&gt;
The code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TNGDialogs.Task('My caption', 'My title', 'My description text')&lt;br /&gt;
            .Icon(tdiInformation)&lt;br /&gt;
            .Buttons([tcbOk, tcbCancel], tcbOk)&lt;br /&gt;
            .Execute;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will show the following simple dialog:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim2.png|Simple TaskDialog example]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
More complex example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  case TNGDialogs.Task('My caption', 'My title', 'My description text')&lt;br /&gt;
                 .Icon(Application.Icon)&lt;br /&gt;
                 .Button('My button', 100, True)&lt;br /&gt;
                 .Buttons([tcbOk, tcbCancel])&lt;br /&gt;
                 .ExpandableInfo('My long long expandable information text')&lt;br /&gt;
                 .Footer('My footer text', tdiWarning)&lt;br /&gt;
                 .Execute of&lt;br /&gt;
    100:      ; // My button clicked.&lt;br /&gt;
    mrOk:     ;&lt;br /&gt;
    mrCancel: ;&lt;br /&gt;
  end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will show the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim3.png|Complex example]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== Designtime Editor ===&lt;br /&gt;
The package provides design-time editor for TNGTaskDialog and TNGInputDialog components. Double click on the dialog component. placed on a form, to execute design-time editor. The editor provides a simple way to configure dialog, and provides the ability to look at the resulting dialog by clicking &amp;quot;Show Dialog&amp;quot; button:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim4.png|NG DialogPack designtime editor]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG ValidatorPack ==&lt;br /&gt;
LMD Validators Pack provides a set of components and classes to implement client-side validation of data input in an elegant and clear way without writing much code (often without any code at all). &lt;br /&gt;
The two main tasks of client-side validation are:&lt;br /&gt;
&lt;br /&gt;
* to check for validity a value entered by a user into some input control;&lt;br /&gt;
* to provide feedback about validation results (e.g. to indicate an error) in some way.&lt;br /&gt;
&lt;br /&gt;
NG ValidatorPack represents the standalone version of LMD Validator Controls without any references to LMD VCL - usable with many available VCL and 4rd Party input controls.&lt;br /&gt;
For first info check [http://www.lmd.de/downloads/tutorials/validators/index.html LMD Validator Tutorial] (LMD VCL related, but concept is same.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_NG_-_MiniHTML&amp;diff=3853</id>
		<title>LMD NG - MiniHTML</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_NG_-_MiniHTML&amp;diff=3853"/>
				<updated>2017-08-18T12:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
== Supported subset of HTML tags ==&lt;br /&gt;
&lt;br /&gt;
NG HTMLPack and certain controls of other NG Packs (e.g. DialogPack) integrate a Mini HTML engine which supports a subset of HTML tags. Following HTML tags can be used:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag&lt;br /&gt;
! Syntax&lt;br /&gt;
! Comments &amp;amp;amp; samples&lt;br /&gt;
|-&lt;br /&gt;
| Body&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;body bgcolor=&amp;quot;clInfoBk&amp;quot; bgcolorto=&amp;quot;clWhite&amp;quot; dir=&amp;quot;v&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use body tag to set background color or gradient&lt;br /&gt;
|-&lt;br /&gt;
| Bold&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;b&amp;amp;gt;, &amp;amp;lt;/b&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| '''bold'''&lt;br /&gt;
|-&lt;br /&gt;
| Indetation&lt;br /&gt;
| &amp;lt;code&amp;gt; &amp;amp;lt;ind width=&amp;quot;Width&amp;quot; [pos=abs]&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use this tag to make indentation with absolute or relative position. Sample:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;ind width=100 pos=abs&amp;amp;gt;a1&amp;amp;lt;ind width=150 pos=abs&amp;amp;gt;a2&amp;amp;lt;ind width=200 pos=abs&amp;amp;gt;a3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Italic&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;i&amp;amp;gt;, &amp;amp;lt;/i&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| ''italic''&lt;br /&gt;
|-&lt;br /&gt;
| Underline&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;u&amp;amp;gt;, &amp;amp;lt;/u&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;u&amp;gt;underline&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Strikeout&lt;br /&gt;
| &amp;amp;lt;strikeout&amp;amp;gt;, &amp;amp;lt;/strikeout&amp;amp;gt; or &amp;amp;lt;s&amp;amp;gt;, &amp;amp;lt;/s&amp;amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;striked out&amp;lt;/s&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph&lt;br /&gt;
| &amp;amp;lt;p [align=&amp;quot;left&amp;amp;#124;right&amp;amp;#124;center&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| Use ''align'' parameter to specify the alignment of the text in the paragraph. Default value for align is &amp;quot;left&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Subscript&lt;br /&gt;
| &amp;amp;lt;sub&amp;amp;gt;, &amp;amp;lt;/sub&amp;amp;gt;&lt;br /&gt;
| Subscript text is drawn with smaller font and with baseline moved down.&lt;br /&gt;
|-&lt;br /&gt;
| Superscript&lt;br /&gt;
| &amp;amp;lt;sup&amp;amp;gt;, &amp;amp;lt;/sup&amp;amp;gt;&lt;br /&gt;
| Superscript text is drawn with smaller font and with baseline moved up.&lt;br /&gt;
|-&lt;br /&gt;
| Unordered list of elements&lt;br /&gt;
| &amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ul&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
* item 1&lt;br /&gt;
* item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Ordered list of elements&lt;br /&gt;
| &amp;amp;lt;ol&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ol&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
# item 1&lt;br /&gt;
# item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Horizontal divider&lt;br /&gt;
| &amp;amp;lt;hr [width=&amp;quot;width&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| If no value for ''width'' attribute is specified, then it will take maximum available value.&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;amp;lt;br&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;font [name=&amp;quot;fontname&amp;quot;] [size=&amp;quot;x&amp;amp;#124;+x&amp;amp;#124;-x&amp;amp;#124;x px&amp;quot;] [color={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}] [bgcolor={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}]&amp;amp;gt;text&amp;amp;lt;/font&amp;amp;gt;&lt;br /&gt;
| You can specify the name of the font name, size (absolute size or increase, decrease of size) &lt;br /&gt;
and font background color. Color must be a valid hexadecimal value in common HTML format, valid VCL color identifier (clWhite, clBtnFace for example) or valid HTML color identifier (red, black, btnshadow for example. You can use ''background'' synonym for ''bgcolor'' attribute. &amp;lt;br&amp;gt;'''Note''': If ''size'' value is greater than 0 and less than 10 and there is no plus or minus sign, then it means standard font increase relative to default size. Example:&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;2&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=2&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=3&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=4&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;In order to specify exact font size in pixels, use size=&amp;quot;N px&amp;quot; form of the size attribute.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| &amp;amp;lt;a href=&amp;quot;link&amp;quot;&amp;amp;gt;link text&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
| ''Link'' parameter value is passed to OnLinkClick event handler, present in some controls (not all controls support clicking on the URLs.&lt;br /&gt;
|-&lt;br /&gt;
| Embedded image&lt;br /&gt;
| &amp;amp;lt;img src=&amp;quot;image&amp;quot; [width=&amp;quot;w&amp;quot;] [height=&amp;quot;h&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| The ''src'' parameter value is passed to the OnImageNeeded event handler. You can specify the width and height of the image rectangle if needed. By default the width and height are taken from the image you provide in event handler, but you can stretch image on drawing by specifying width and height explicitly.&amp;lt;br&amp;gt;&lt;br /&gt;
The simplest OnImageNeeded event handlers:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&lt;br /&gt;
begin&lt;br /&gt;
    Image.LoadFromFile(SourceName);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&lt;br /&gt;
begin&lt;br /&gt;
    ImageList1.GetBitmap(strtoint(SourceName), Image.Bitmap);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Additional can be defined by using index/file/res identifier in image name:&lt;br /&gt;
* connected imagelist. Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;index:0&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* File: Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;file:sample.png&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ressource: Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;res:MyImageName&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Variables&lt;br /&gt;
| &amp;amp;lt;~~myVariable&amp;amp;gt;&lt;br /&gt;
| The ''aVarName'', ''aVarValue'' parameters are passed to the OnVariableNeeded event handler, which defines what value substitutes the tag&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure TForm2.LMDHTMLLabel1VariableNeeded(Sender: TObject; const aVarName: TLMDString; var aVarValue: TLMDString);&lt;br /&gt;
begin&lt;br /&gt;
  aVarValue := '1111';&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Embedded controls&lt;br /&gt;
|&amp;amp;lt;control vclclass= width= height= name=&amp;amp;gt;&lt;br /&gt;
|Allows embedding of any control into HTML text. Almost all public/published properties can be set via parameters. Example: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;control vclclass=&amp;quot;TEdit&amp;quot; width =&amp;quot;200&amp;quot; height=&amp;quot;14&amp;quot; name=&amp;quot;&amp;quot; text=&amp;quot;edit control&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Color Names&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;h2&amp;gt;Special symbols&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 align=center&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cent   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cent;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oacute;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup1   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup1;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;copy   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;copy;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup2   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup2;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;curren &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;curren;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Icirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup3   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup3;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;deg    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;deg;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;icirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;szlig  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;szlig;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acute;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;divide &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;divide;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iexcl   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iexcl;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;THORN  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;THORN;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;AElig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;AElig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordf &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordf;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;times  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;times;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aelig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aelig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordm &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordm;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;trade  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;trade;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iquest  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iquest;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iuml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;amp     &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;amp;&amp;lt;/td&amp;gt;          &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Egrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iuml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ucirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ucirc;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;egrave;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;laquo   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;laquo;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ETH    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ETH;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;lt       &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;lt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eth    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eth;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;macr &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;macr;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;micro    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;micro;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;para &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;para;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uuml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uuml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;middot   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;middot;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;plusmn   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;plusmn;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Yacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Yacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euro   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euro;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;nbsp &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;pound    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;pound;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;yen    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;yen;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;brvbar  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;brvbar;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac12 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac12;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;not      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;not;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;quot &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;quot;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac14 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac14;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;raquo    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;raquo;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac34 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac34;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;reg      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;reg;&amp;lt;/td&amp;gt;      &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cedil   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cedil;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;gt &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;gt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sect &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sect;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_NG_-_MiniHTML&amp;diff=3852</id>
		<title>LMD NG - MiniHTML</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_NG_-_MiniHTML&amp;diff=3852"/>
				<updated>2017-08-18T12:49:07Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
== Supported subset of HTML tags ==&lt;br /&gt;
&lt;br /&gt;
NG HTMLPack and certain controls of other NG Packs (e.g. DialogPack) integrate a Mini HTML engine which supports a subset of HTML tags. Following HTML tags can be used:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tag&lt;br /&gt;
! Syntax&lt;br /&gt;
! Comments &amp;amp;amp; samples&lt;br /&gt;
|-&lt;br /&gt;
| Body&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;body bgcolor=&amp;quot;clInfoBk&amp;quot; bgcolorto=&amp;quot;clWhite&amp;quot; dir=&amp;quot;v&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use body tag to set background color or gradient&lt;br /&gt;
|-&lt;br /&gt;
| Bold&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;b&amp;amp;gt;, &amp;amp;lt;/b&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| '''bold'''&lt;br /&gt;
|-&lt;br /&gt;
| Indetation&lt;br /&gt;
| &amp;lt;code&amp;gt; &amp;amp;lt;ind width=&amp;quot;Width&amp;quot; [pos=abs]&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| Use this tag to make indentation with absolute or relative position. Sample:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;ind width=100 pos=abs&amp;amp;gt;a1&amp;amp;lt;ind width=150 pos=abs&amp;amp;gt;a2&amp;amp;lt;ind width=200 pos=abs&amp;amp;gt;a3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Italic&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;i&amp;amp;gt;, &amp;amp;lt;/i&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| ''italic''&lt;br /&gt;
|-&lt;br /&gt;
| Underline&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;lt;u&amp;amp;gt;, &amp;amp;lt;/u&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;u&amp;gt;underline&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Strikeout&lt;br /&gt;
| &amp;amp;lt;strikeout&amp;amp;gt;, &amp;amp;lt;/strikeout&amp;amp;gt; or &amp;amp;lt;s&amp;amp;gt;, &amp;amp;lt;/s&amp;amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;striked out&amp;lt;/s&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph&lt;br /&gt;
| &amp;amp;lt;p [align=&amp;quot;left&amp;amp;#124;right&amp;amp;#124;center&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| Use ''align'' parameter to specify the alignment of the text in the paragraph. Default value for align is &amp;quot;left&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Subscript&lt;br /&gt;
| &amp;amp;lt;sub&amp;amp;gt;, &amp;amp;lt;/sub&amp;amp;gt;&lt;br /&gt;
| Subscript text is drawn with smaller font and with baseline moved down.&lt;br /&gt;
|-&lt;br /&gt;
| Superscript&lt;br /&gt;
| &amp;amp;lt;sup&amp;amp;gt;, &amp;amp;lt;/sup&amp;amp;gt;&lt;br /&gt;
| Superscript text is drawn with smaller font and with baseline moved up.&lt;br /&gt;
|-&lt;br /&gt;
| Unordered list of elements&lt;br /&gt;
| &amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ul&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
* item 1&lt;br /&gt;
* item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Ordered list of elements&lt;br /&gt;
| &amp;amp;lt;ol&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ol&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
# item 1&lt;br /&gt;
# item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Horizontal divider&lt;br /&gt;
| &amp;amp;lt;hr [width=&amp;quot;width&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| If no value for ''width'' attribute is specified, then it will take maximum available value.&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;amp;lt;br&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;font [name=&amp;quot;fontname&amp;quot;] [size=&amp;quot;x&amp;amp;#124;+x&amp;amp;#124;-x&amp;amp;#124;x px&amp;quot;] [color={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}] [bgcolor={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}]&amp;amp;gt;text&amp;amp;lt;/font&amp;amp;gt;&lt;br /&gt;
| You can specify the name of the font name, size (absolute size or increase, decrease of size) &lt;br /&gt;
and font background color. Color must be a valid hexadecimal value in common HTML format, valid VCL color identifier (clWhite, clBtnFace for example) or valid HTML color identifier (red, black, btnshadow for example. You can use ''background'' synonym for ''bgcolor'' attribute. &amp;lt;br&amp;gt;'''Note''': If ''size'' value is greater than 0 and less than 10 and there is no plus or minus sign, then it means standard font increase relative to default size. Example:&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;2&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=2&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=3&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=4&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;In order to specify exact font size in pixels, use size=&amp;quot;N px&amp;quot; form of the size attribute.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| &amp;amp;lt;a href=&amp;quot;link&amp;quot;&amp;amp;gt;link text&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
| ''Link'' parameter value is passed to OnLinkClick event handler, present in some controls (not all controls support clicking on the URLs.&lt;br /&gt;
|-&lt;br /&gt;
| Embedded image&lt;br /&gt;
| &amp;amp;lt;img src=&amp;quot;image&amp;quot; [width=&amp;quot;w&amp;quot;] [height=&amp;quot;h&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| The ''src'' parameter value is passed to the OnImageNeeded event handler. You can specify the width and height of the image rectangle if needed. By default the width and height are taken from the image you provide in event handler, but you can stretch image on drawing by specifying width and height explicitly.&amp;lt;br&amp;gt;&lt;br /&gt;
The simplest OnImageNeeded event handlers:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&amp;lt;br&amp;gt;begin&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Image.LoadFromFile(SourceName);&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&amp;lt;br&amp;gt;begin&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;ImageList1.GetBitmap(strtoint(SourceName), Image.Bitmap);&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Additional can be defined by using index/file/res identifier in image name:&lt;br /&gt;
* connected imagelist. Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;index:0&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* File: Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;file:sample.png&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ressource: Use syntax: &amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;res:MyImageName&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Variables&lt;br /&gt;
| &amp;amp;lt;~~myVariable&amp;amp;gt;&lt;br /&gt;
| The ''aVarName'', ''aVarValue'' parameters are passed to the OnVariableNeeded event handler, which defines what value substitutes the tag&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt; &lt;br /&gt;
procedure TForm2.LMDHTMLLabel1VariableNeeded(Sender: TObject; const aVarName: TLMDString; var aVarValue: TLMDString);&lt;br /&gt;
begin&lt;br /&gt;
  aVarValue := '1111';&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Embedded controls&lt;br /&gt;
|&amp;amp;lt;control vclclass= width= height= name=&amp;amp;gt;&lt;br /&gt;
|Allows embedding of any control into HTML text. Almost all public/published properties can be set via parameters. Example: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;&amp;lt;control vclclass=&amp;quot;TEdit&amp;quot; width =&amp;quot;200&amp;quot; height=&amp;quot;14&amp;quot; name=&amp;quot;&amp;quot; text=&amp;quot;edit control&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Color Names&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;h2&amp;gt;Special symbols&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 align=center&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cent   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cent;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oacute;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup1   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup1;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;copy   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;copy;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup2   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup2;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;curren &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;curren;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Icirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup3   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup3;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;deg    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;deg;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;icirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;szlig  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;szlig;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acute;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;divide &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;divide;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iexcl   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iexcl;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;THORN  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;THORN;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;AElig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;AElig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordf &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordf;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;times  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;times;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aelig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aelig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordm &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordm;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;trade  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;trade;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iquest  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iquest;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iuml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;amp     &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;amp;&amp;lt;/td&amp;gt;          &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Egrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iuml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ucirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ucirc;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;egrave;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;laquo   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;laquo;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ETH    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ETH;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;lt       &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;lt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eth    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eth;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;macr &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;macr;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;micro    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;micro;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;para &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;para;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uuml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uuml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;middot   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;middot;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;plusmn   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;plusmn;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Yacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Yacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euro   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euro;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;nbsp &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;pound    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;pound;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;yen    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;yen;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;brvbar  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;brvbar;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac12 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac12;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;not      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;not;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;quot &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;quot;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac14 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac14;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;raquo    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;raquo;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac34 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac34;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;reg      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;reg;&amp;lt;/td&amp;gt;      &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cedil   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cedil;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;gt &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;gt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sect &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sect;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_NG_2014_-_News&amp;diff=3851</id>
		<title>LMD NG 2014 - News</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_NG_2014_-_News&amp;diff=3851"/>
				<updated>2017-08-18T12:47:42Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Getting started}}[[Category:Introduction]]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
The new Next Generation (NG) Control Suite supplements the LMD line of products for Embarcadero Delphi/C++Builder. While LMD VCL products still (now and in the future) support legacy IDEs (Delphi/C++Builder 6 and higher), NG components make use of new IDE and language features of most recent  IDE releases (Delphi/C++Builder 2009 and above). This approach allows us to neglect compatibility issues (e.g. Unicode and Generics support) and to use ideas which are not possible with older IDEs. &amp;lt;br&amp;gt;&lt;br /&gt;
Besides that NG Controls are designed to be lightweight and task-focused. They do not represent a complete framework like the LMD VCL platform and can be used at the same time with LMD VCL controls, the VCL (and later FMX) or any other 3rd Party toolbox.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Support for IDEs and operating systems ===&lt;br /&gt;
* Compatible with Delphi and C++ Builder XE2 - XE5, including 64bit support for XE2 and higher! The next Delphi/C++Builder release will be supported almost immediately after public availability.&lt;br /&gt;
* Supported IDEs&lt;br /&gt;
** Delphi 2009, 2010, XE, XE2, XE3, XE4, XE5 (depending on package)&lt;br /&gt;
** C++ Builder 2009, 2010, XE, XE2, XE3, XE4, XE5 (depending on package)&lt;br /&gt;
** All corresponding Studio Products (CRS 2009, RAD Studio 2010, XE, XE2, XE3 etc.)&lt;br /&gt;
* Supported operating systems&lt;br /&gt;
** Win 2000 or better (including Windows 7 + 8). &lt;br /&gt;
&lt;br /&gt;
In release 1.X (2013) VCL only is (actively) supported. However for all pacckages support of FMX is in preparation (exceptions are e.g. windows only related features like the native TaskDialog implementation).&lt;br /&gt;
&lt;br /&gt;
=== 64bit support (Delphi XE2 and higher) === &lt;br /&gt;
All packages are available in 64bit versions. &amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG SerializerPack (XE and higher only) ==&lt;br /&gt;
NG SerializerPack provides the ability to serialize/de-serialize Delphi objects into various storage formats. Any public (not only published!) property can be automatically handled by the engine. This allows to write data applications in a more object oriented and simpler way. NG SerializerPack uses enhanced RTTI features and supports latest features of Delphi/C++Builder runtime (like e.g. Generics). &amp;lt;br&amp;gt;&lt;br /&gt;
Common use cases of a serialization engine are:&lt;br /&gt;
 &lt;br /&gt;
* Saving/loading application options / configuration data which are represented by typed objects.&lt;br /&gt;
* Sending business objects via net between client and server.&lt;br /&gt;
* Saving/loading CAD-like application documents, since they are usually represented at runtime in a tree-like object model.&lt;br /&gt;
* ect.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;New in release 2014&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;XML-support for additional 3rd party library (NativeXML) - now 3 different XML providers are supported.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;NEW:&amp;lt;/b&amp;gt; JSON support. Either via Delphi built in JSON access (e.g. TJSONValue) or 3rd party (SuperObject).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;NEW:&amp;lt;/b&amp;gt; Skipping of unknown members / advanced error handling during de-serialization process is now available. &lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;TDeserializer.SkipValue and TBinaryData.SkipAll methods has been added to allow users skip values while manual de-serialization. Corresponding protected method has been implemented in all supported formats. Skipping data has been optimized for speed in a binary format.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;OnMemberNotFound event has been added to TDeserializer class, which is executed when RTTI-based de-serialization process is unable to find de-serializing member.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SkipAllAttribute and SkipMemberAttribute has been introduced. They are designed to be used as type level attributes, and allows to specify, which member names to skip without exception while de-serializing. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also: [http://www.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide] and [http://www.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference].&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Demos ===&lt;br /&gt;
Demo folder: &amp;lt;code&amp;gt;serialization\delphi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;serialization&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A very extensive demo project which demonstrates a common use of NG Serialization Pack: Transmitting business objects between client and server applications. An extensive object model  is created and usage of many supported attributes and creation of converter classes are demonstrated.&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;code&amp;gt;web-service&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
A web service demo which loads and transfers data from the Jamendo music platform directly via REST into defined TAlbum and TTrack classes.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;simple&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo which demonstrates simplicity of (de-)serializing generic TObject and TObjectList descendants from/to XML files (XMLDocument).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;json&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using the DBXJSON class (included with Delphi).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;super-object&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using SuperObject JSON library (3rd party).&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;native-xml&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using Native-XML.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;omni-xml&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Simple demo like before using OmniXML.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG HTMLPack ==&lt;br /&gt;
A set of lightweight controls for HTML display (supporting a subset of HTML tags). Advanced functionality like support of variables, internal controls, DB templates, images etc. is included.&amp;lt;br&amp;gt;Click on images below for more info.&lt;br /&gt;
 &amp;lt;gallery&amp;gt;&lt;br /&gt;
 File:HTMLPackNew.png|What's new&lt;br /&gt;
 File:HTMLPackFormat.png|Format tags&lt;br /&gt;
 File:HTMLListBox.jpg|HTML ListBox&lt;br /&gt;
 &amp;lt;/gallery&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
* &amp;lt;b&amp;gt;Non-DB Controls&amp;lt;/b&amp;gt;&lt;br /&gt;
** TNGHTMLLabel&lt;br /&gt;
** TNGHTMLHeaderControl&lt;br /&gt;
** TNGHTMLListBox&lt;br /&gt;
** TNGHTMLPanel&lt;br /&gt;
** TNGHTMLView&lt;br /&gt;
** TNGHTMLStringStorage&lt;br /&gt;
* &amp;lt;b&amp;gt;DB Controls&amp;lt;/b&amp;gt;&lt;br /&gt;
** TNGHTMLDBLabel&lt;br /&gt;
** TNGHTMLDBView&lt;br /&gt;
&lt;br /&gt;
=== Demos ===&lt;br /&gt;
Demo folder: &amp;lt;code&amp;gt;html\delphi&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;features&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Demonstrates features of the NG HTML engine.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;controls\core&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Demonstrates non-DB aware controls of NG HTMLPack.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;controls\dbaware&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
== NG DialogPack ==&lt;br /&gt;
NG-DialogPack is based on the features provided by Microsoft Windows Vista Task Dialog API, which allows to create and show Windows Vista (Windows 7) like dialogs. The package extends platform API with emulation mode, which allows to use NG-DialogPack components in previous OS versions, such as Windows XP. Also, emulation mode provides additional features, such as Input Dialog, which has no analog in platform API.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim1.png|Simple Example]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
See also: [http://www.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack documentation]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== Features ===&lt;br /&gt;
NG-DialogPack package contains tree major components:&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGTaskDialog&amp;lt;/b&amp;gt; component allows to configure and show Windows Vista (Windows 7) like task dialogs. Task dialog can contain:&lt;br /&gt;
** Caption, Title and Content texts.&lt;br /&gt;
** MainIcon, which can be one of the standard icons, like Information, Warning, Error, ect.; or a custom icon.&lt;br /&gt;
** Standard buttons, such as Ok, Cancel, Yes, No, Retry, ect; or a custom buttons, with custom Caption, ModalResult and Enabled state, configurable by the user. There is the ability to show custom buttons as command links, supporting CommandLinkHint feature.&lt;br /&gt;
** Radio buttons with Caption and Enabled state configurable by the user.&lt;br /&gt;
** Progress bar with various configurable properties, such as Min, Max and Position.&lt;br /&gt;
** Expandable additional information text with expand/collapse button.&lt;br /&gt;
** Verification check-box with configurable initial check-box state and check-box caption.&lt;br /&gt;
** Footer area with FooterIcon, analogous to MainIcon, and FooterText.&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGInputDialog&amp;lt;/b&amp;gt; component allows to configure and show input dialog, which is a dialog that contains some input control, such as edit or memo, and provides a way for the user to input a value. Input dialog can contain:&lt;br /&gt;
** Caption, Title and Content texts, MainIcon, standard and custom buttons, expandable additional information, verification check-box and footer area - all these features are analogous to TNGTaskDialog.&lt;br /&gt;
** Input control, which can be configured by the user by assigning a value to InputType property. Input control can be one of the following: edit, memo, password edit, editable combo-ox, non-editable combo-box, date-time picker or a custom input control (or several controls) configured as a mini-HTML template, using TemplateHtml property.&lt;br /&gt;
** InputValue property can be used to specify initial input value, which is shown when the dialog executed. As well, InputItems property can be used to configure combo-box items.&lt;br /&gt;
* &amp;lt;b&amp;gt;TNGMessageDialog&amp;lt;/b&amp;gt; component allows to configure and show simple message dialogs with a look, compatible with TNGTaskDialog. The main purpose of the component is to be used internally inside TNGDialogs.Message overloaded methods, so, it, probably, need not be used explicitly. The component provides a set of properties, which are analogous to Delphi standard MessageDlg function parameters.&lt;br /&gt;
 &lt;br /&gt;
First two dialog components support advanced set of features, such as callback timer, OnButtonClick event with the ability of dialog content modification from the event handler, and navigation.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Fluent Interface ===&lt;br /&gt;
We are proud to introduce a simple, very convenient API for executing dialogs. The API is organized as static methods of TNGDialogs structure, most of which are overloaded. In most cases this API allows to show required dialog writing one or just several lines of code without placing dialog components on the form. The API provides replacement for standard Delphi dialog functions, such as ShowMessage, MessageDlg, InputBox and InputQuert to allow to show dialogs, compatible with task dialog look and feel. It also contains some additional simple dialog functions, such as Error, Warning or Information. All these function are overloaded, which allows to specify only required parameters.&lt;br /&gt;
 &lt;br /&gt;
Another part of Fluent Interface API is our unique dialog builders, available for task and input dialogs. Following are some usage examples:&lt;br /&gt;
 &lt;br /&gt;
The code:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TNGDialogs.Task('My caption', 'My title', 'My description text')&lt;br /&gt;
            .Icon(tdiInformation)&lt;br /&gt;
            .Buttons([tcbOk, tcbCancel], tcbOk)&lt;br /&gt;
            .Execute;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will show the following simple dialog:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim2.png|Simple TaskDialog example]]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
More complex example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  case TNGDialogs.Task('My caption', 'My title', 'My description text')&lt;br /&gt;
                 .Icon(Application.Icon)&lt;br /&gt;
                 .Button('My button', 100, True)&lt;br /&gt;
                 .Buttons([tcbOk, tcbCancel])&lt;br /&gt;
                 .ExpandableInfo('My long long expandable information text')&lt;br /&gt;
                 .Footer('My footer text', tdiWarning)&lt;br /&gt;
                 .Execute of&lt;br /&gt;
    100:      ; // My button clicked.&lt;br /&gt;
    mrOk:     ;&lt;br /&gt;
    mrCancel: ;&lt;br /&gt;
  end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will show the following:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim3.png|Complex example]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== Designtime Editor ===&lt;br /&gt;
The package provides design-time editor for TNGTaskDialog and TNGInputDialog components. Double click on the dialog component. placed on a form, to execute design-time editor. The editor provides a simple way to configure dialog, and provides the ability to look at the resulting dialog by clicking &amp;quot;Show Dialog&amp;quot; button:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:embim4.png|NG DialogPack designtime editor]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== NG ValidatorPack ==&lt;br /&gt;
LMD Validators Pack provides a set of components and classes to implement client-side validation of data input in an elegant and clear way without writing much code (often without any code at all). &lt;br /&gt;
The two main tasks of client-side validation are:&lt;br /&gt;
&lt;br /&gt;
* to check for validity a value entered by a user into some input control;&lt;br /&gt;
* to provide feedback about validation results (e.g. to indicate an error) in some way.&lt;br /&gt;
&lt;br /&gt;
NG ValidatorPack represents the standalone version of LMD Validator Controls without any references to LMD VCL - usable with many available VCL and 4rd Party input controls.&lt;br /&gt;
For first info check [http://www.lmd.de/downloads/tutorials/validators/index.html LMD Validator Tutorial] (LMD VCL related, but concept is same.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_2012_-_What%60s_New%3F&amp;diff=3850</id>
		<title>LMD VCL 2012 - What`s New?</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_2012_-_What%60s_New%3F&amp;diff=3850"/>
				<updated>2017-08-18T12:46:21Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Getting started}}[[Category:Introduction]]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
=== Support for IDEs and operating systems ===&lt;br /&gt;
* Compatible with Delphi XE2 and C++ Builder XE2, including 64bit support for Delphi XE2!&lt;br /&gt;
* Supported IDEs&lt;br /&gt;
** Delphi 6, 7, Delphi 2005 - 2010, XE + XE2&lt;br /&gt;
** C++ Builder 6, 2006 - 2010, XE + XE2&lt;br /&gt;
** Delphi 2005.NET - Delphi 2007.NET&lt;br /&gt;
** Turbo (2006) Professional versions for Delphi, C++ and Delphi.NET&lt;br /&gt;
** All corresponding Studio Products (BDS 2006, CRS 2007, CRS 2009, RAD Studio 2010, XE, XE2 etc.)&lt;br /&gt;
* Supported operating systems&lt;br /&gt;
** Win98 and WinNT4 or better (including Windows 7). &lt;br /&gt;
For recent Delphi releases LMD VCL package support same platforms as the VCL which is included in the IDE (e.g. Delphi 2009 officially supports Win2k or better only).&lt;br /&gt;
&lt;br /&gt;
=== 64bit support (Delphi XE2 and higher) === &lt;br /&gt;
All packages were ported to 64bit. &lt;br /&gt;
'''Exception:''' Compatibility controls (dcllmdlegacy) can not be used in 64bit applications.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== New package naming convention ===&lt;br /&gt;
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. &lt;br /&gt;
Runtime package names are prefixed now with &amp;quot;lmdrt&amp;quot;, design-time package names with &amp;quot;dcllmd&amp;quot;. Some examples of generated package file names are: lmdrtdocking.dcp, lmdrtdocking.bpi, lmdrtdocking.lib, dcllmddocking.dcp, dcllmddocking.bpi, dcllmddocking.lib. &lt;br /&gt;
IDE version suffix is still contained only in generated &amp;quot;bpl&amp;quot;: lmdrtdocking_160.bpl.&lt;br /&gt;
&lt;br /&gt;
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 will require no changes.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== AnyLogger Source Code ===&lt;br /&gt;
Until now the &amp;lt;b&amp;gt;LMD AnyLogger Console&amp;lt;/b&amp;gt; was a free logging client for LogTools library and registered LMD users (if you did not use it yet: Visit your personal download area and get this handy tool. A small [[LMD LogTools tutorial|Tutorial]] is available on public wiki). The executable remains free, but on user request we made the full sourcecode of the application available for purchase (see [[http://blog.lmd.de/2011/03/lmd-anylogger-source-code-available blog entry]]).&amp;lt;br&amp;gt;&lt;br /&gt;
New LMD 2012 Subscription SVN user can request free source license for &amp;lt;b&amp;gt;internal use&amp;lt;/b&amp;gt; (without support) after first official release from sales@lmd.de.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== LMD Tools ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* Code normalisation for 64bit support. &lt;br /&gt;
                                    &lt;br /&gt;
=== LMDBaseEdit ===&lt;br /&gt;
Three values added to TLMDEditOption type: eoAllowCopy, eoAllowCut, eoAllowPaste.&lt;br /&gt;
All LMDBaseEdit descendants which expose 'Options' property now support setting separate permissions for each of Copy/Cut/Paste action. &lt;br /&gt;
&lt;br /&gt;
[[Image:Neweditoptions.png]]&lt;br /&gt;
&lt;br /&gt;
Actions in popup menu are shown/hidden according to current options. For example, all copy/cut/paste operations are disabled: &lt;br /&gt;
&lt;br /&gt;
[[Image:Lmdeditpopup.png]]&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== LMD HTML Controls ===&lt;br /&gt;
&lt;br /&gt;
New HTML controls: &lt;br /&gt;
&lt;br /&gt;
* TLMDHTMLComboBox&lt;br /&gt;
* TLMDHTMLExtListBox&lt;br /&gt;
* TLMDHTMLHeaderControl&lt;br /&gt;
* TLMDHTMLListBox&lt;br /&gt;
* TLMDHTMLListBoxExt&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmdhtmlcontrols.png]]&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMDFormComboBox ===&lt;br /&gt;
New component TLMDFormComboBox added. This control is a generic combobox, &lt;br /&gt;
allowing to dropdown a form containing any visual control:&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmdformcombobox.png]]&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMDDateTimePicker ===&lt;br /&gt;
&lt;br /&gt;
New component TLMDDateTimePicker added. LMDCalendar and LMDClock controls received Style and ColorScheme properties. See screenshots of LMDDateTimePicker with different calendar and clock styles:&lt;br /&gt;
&lt;br /&gt;
[[Image:datetimepicker1.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:datetimepicker2.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:datetimepicker3.png]]&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== LMDMaskEdit ===&lt;br /&gt;
LMDMaskEdit received new mask type: meDateTime and new property TimeSettings.&lt;br /&gt;
&lt;br /&gt;
[[Image:timesettings.png]] &lt;br /&gt;
&lt;br /&gt;
The mask type allows to edit both date and time part of a DateTime value. &lt;br /&gt;
For 'meTime' mask type a convenient edit mode is now supported, similar to that for meDate mask type.&lt;br /&gt;
&lt;br /&gt;
[[Image:Medatetime.png]]&lt;br /&gt;
&lt;br /&gt;
Custom time formats support added. For custom formats time separator must be ':'&lt;br /&gt;
&lt;br /&gt;
Custom formats can use&lt;br /&gt;
* 'h' for hours in 12 hour format,&lt;br /&gt;
* 'H' for for hours 24 hour format,&lt;br /&gt;
* 'm' or M for minutes,&lt;br /&gt;
* 's' or S for seconds,&lt;br /&gt;
* 't' for AM/PM sign if 't' is omitted, then AM/PM sign is added at the end with a space.&lt;br /&gt;
&lt;br /&gt;
'hh' ('mm', 'ss') means that leading zero is displayed,&lt;br /&gt;
'h' ('m', 's') means that leading zero is NOT displayed.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* 'h:mm:ss'  - 3:34:12 am&lt;br /&gt;
* 'hh:mm'    - 03:34 am&lt;br /&gt;
* 'hh:mmt'   - 03:34am&lt;br /&gt;
* 't h:mm'   - am 3:34&lt;br /&gt;
* 'HH:mm:ss' - 03:34:12&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMDToolBar control ===&lt;br /&gt;
&lt;br /&gt;
New LMDToolBar control added. The toolbar supports png glyphs, separators with customizable background, different button widths.&lt;br /&gt;
&lt;br /&gt;
Example 1. Gradient-backgrounded toolbar with one of buttons wider than others:&lt;br /&gt;
&lt;br /&gt;
[[Image:lmdtoolbar1.png]]&lt;br /&gt;
&lt;br /&gt;
Example 2. Gradient-backgrounded toolbar with transparent buttons:&lt;br /&gt;
&lt;br /&gt;
[[Image:lmdtoolbar2.png]]&lt;br /&gt;
&lt;br /&gt;
Toolbar editor has some preloaded icons (famfamfam + glyfx 16x16). Also, any png icon pack can be loaded, the editor will remember the path (&amp;quot;Load custom pack 1...&amp;quot; and &amp;quot;Load custom pack 2...&amp;quot; buttons navigate to folders selected before). The &amp;quot;Load GlyFX...&amp;quot; button navigates to &amp;quot;C:\Program Files\Common Files\Borland Shared\Images\GlyFX\Icons\PNG\&amp;quot; folder). &lt;br /&gt;
&lt;br /&gt;
[[Image:lmdtoolbareditor1.png]]&lt;br /&gt;
&lt;br /&gt;
GlyFX 32x32 icons loaded:&lt;br /&gt;
&lt;br /&gt;
[[Image:lmdtoolbareditor2.png]]&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Support of Vcl.Styles added for most LMD and ElPack controls ===&lt;br /&gt;
&lt;br /&gt;
[[Image:vclsstyles_aqualightslate.PNG]]&lt;br /&gt;
&lt;br /&gt;
[[Image:vclsstyles_emeraldlightslate.PNG]]&lt;br /&gt;
&lt;br /&gt;
[[Image:vclsstyles_goldengraphite.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== Deprecated Controls ===&lt;br /&gt;
==== TLMDDBAliasNamesComboBox ====&lt;br /&gt;
This component uses features of BDE which is deprecated. Therefore control was moved to Legacy Package. If you used this control, please make sure to install dcllmdlegacy package (not installed by default from installer!).&lt;br /&gt;
==== TLMDDBDriverComboBox====&lt;br /&gt;
This component uses features of BDE which is deprecated. Therefore control was moved to Legacy Package. If you used this control, please make sure to install dcllmdlegacy package (not installed by default from installer!).                                  &lt;br /&gt;
==== TLMDDBTablesComboBox ====&lt;br /&gt;
This component uses features of BDE which is deprecated. Therefore control was moved to Legacy Package. If you used this control, please make sure to install dcllmdlegacy package (not installed by default from installer!).&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
&lt;br /&gt;
* StayFloatFormsOnTop boolean property has been added to TLMDDockManager component. Default value of this property is True, which means that all floating site forms will has StayOnTop flag set.&lt;br /&gt;
* Z-order handling of floating forms as well as of other things like hotsports or blue rect has been improved.&lt;br /&gt;
* The bug with internal timer WndProc has been fixed. Now timer WndProc does not ignore other messages, specifically WM_QUERYENDSESSION message.&lt;br /&gt;
* Small improvements of the painting code has been made.&lt;br /&gt;
* #822 bug has been fixed.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== LMD ElPack ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* Code normalisation for 64bit support. &lt;br /&gt;
{{Top}}&lt;br /&gt;
                                    &lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* Code normalisation for 64bit support.&amp;lt;br&amp;gt;&lt;br /&gt;
=== DesignPack ===&lt;br /&gt;
* Items sorting in TLMDObjectComboBox drop-down list has been implemented.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:SortedObjectCombo.png|Sorted drop-down list]]&lt;br /&gt;
* The bug with TLMDDebugModule.Assign has been fixed. Now its possible to use TLMDDebugger in a frame.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ScriptPack ===&lt;br /&gt;
* Native languages (PasScript and NativeVB) VM and compilers has been adapted to x64 platform. This includes optimized Variant operations, used by VM.&lt;br /&gt;
* The parser of the LMD-ScriptPack Importer Wizard pasrser has been improved; for example, it is able currently to parse Delphi generic (templates) as well as other new Delphi language constructs. So, the whole VCL can be parsed without parse errors.&lt;br /&gt;
* LMD-ScriptPack Batch Importer is able currently to process specified units in the &amp;quot;uses&amp;quot; recursion order, making the use of the batch importer much easier. As well, some importing units can be marked as &amp;quot;supplemental&amp;quot;; in this case the importer will automatically uncheck everuthing inside the unit that is not used by other (non-supplemental) imported units. This is a great help while importing units such as WinAPI units: Windows.pas, AtiveX.pas, ect.&lt;br /&gt;
* Based on new Batch Importer functionality, the VCL has been fully reimported. So, LMD-2012 release contains true reimpoting of VCL, not just a port from previous release. Thus, all new functionality (classes, methods and properies), which is compatible with script-pack should be accessible from the script.&lt;br /&gt;
* For Delphi 2010 and up embedded view is used for Importer Wizard as well as for Batch Import form. Importer Wizard is now appears as a lower tab in Delphi source editor, Batch Import form - as a top source editor tab:&lt;br /&gt;
[[Image:ScriptImporterSubView.png|Importer Wizard]]&lt;br /&gt;
[[Image:BatchView.png|Batch Import]]&lt;br /&gt;
* Importer Wizard as well as Batch Import form now uses standard Delphi message view to report messages. Just like any other messages, generated messages are clickable:&lt;br /&gt;
[[Image:Messages.png|Import Messages]]&lt;br /&gt;
* Import Wizard as well as Batch Import are now able to generate &amp;quot;additional info&amp;quot; messages. These messages can be usefull while importing; for example, importer will count all untypes contants, making it impossible to forget to assign constant type manually:&lt;br /&gt;
[[Image:AdditionalInfo.png|Import Additional Info]]&lt;br /&gt;
* Script importer performance has been improved.&lt;br /&gt;
* Support for optional parameters in imported script wrappers. XE2 introduces many additional optional parameters in VCL functions (one example - DirectroyExists function).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if DirectroyExists('c:\MyDir') then // FollowLink second parameter is omit.&lt;br /&gt;
  ShowMessage('Ok.');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Support for default properties in imported script wrappers. Now, its possible to write Memo.Lines[i], instead of Memo.Lines.Items[i].&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  M, L;&lt;br /&gt;
begin&lt;br /&gt;
  M := MyForm.Memo1;&lt;br /&gt;
  L := M.Lines;&lt;br /&gt;
  for i := 0 to M.Lines.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    M.Lines[i] := 'Hello world'; // Both ways should work.&lt;br /&gt;
    L[i]       := 'Hello world'; //&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Partial support for overloaded procedures/methods in imported script wrappers. Wrappers code now support overload resolution by parameter count; however, overload resolution by parameter types are not supported.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  S, F;&lt;br /&gt;
begin&lt;br /&gt;
  S := '7.5';&lt;br /&gt;
  F := StrToFloat(S);                  // Both calls should work.&lt;br /&gt;
  F := StrToFloat(S, FormtalSettings); //&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* The bug with invalid EOl in NativeVB EvalExpr and ExecStmt has been fixed.&lt;br /&gt;
&lt;br /&gt;
=== SyntaxEdit ===&lt;br /&gt;
* The bug with font in SyntaxEdit dialogs has been fixed. Now dialogs use standard Windows font, just like all other VCl dialogs.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Changes/Enhancements since initial LMD VCL 2011 release ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* Delphi / C++Builder XE2 installer (32bit only for LMD 2011 platform)&lt;br /&gt;
'''See full list here''' [[LMD 2011 - History]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== LMD Tools ===&lt;br /&gt;
* LMDCal: TLMDCalendar reworked (added ImageList support, added support of custom captions for buttons, standard glyphs for navigation buttons added)&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDDropdownForm unit added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCalendarComboBox: Style and ColorScheme props added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDClock: Style and ColorScheme properties added; built-in Vista and Windows7 look added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCalendar: Style and ColorScheme properties added; built-in WinXP and Vista styles added with color schemes&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDDateTimePicker and LMDCustomDateTimePicker units added&amp;lt;br&amp;gt;&lt;br /&gt;
* TLMDColorScheme type moved from LMDThemesCommonType unit to LMDClass unit&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDEditDBLookup, LMDDBEditDBLookup: FindNearest replaced by Locate; reference to bde.dbtables removed&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDBaseEdit: eoAllowCut, eoAllowCopy, eoAllowPaste options added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDTypes.pas Added combine type for Int64Rec and LongRec - TLMDIntRec&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDSysIn. Added LMDSIDPIAwareIconSize, LMDSIDPIAwareSmallIconSize, LMDSILogPixelsX functions&amp;lt;br&amp;gt;&lt;br /&gt;
* TLMDTaskDialog. Better Support of higher DPI-Resolutions&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDSysIn: Added LMDSIDPIAwareIconSize, LMDSIDPIAwareSmallIconSize, LMDSILogPixelsX functions&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDHTMLUnit: color parameter added to &amp;amp;lt;A&amp;amp;gt; tag&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCSVImport: ansi text import fixed&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCustomMemo: GetRowText method added (returns the line with given index with respect to word-wrap line breaking)&amp;lt;br&amp;gt;&lt;br /&gt;
* TLMDTaskDialog. Added ability to select default button for common buttons too&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDHTMLUnit: OnAdjustControlPosition event added, some additions to TLMDHTMLData class made&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDPageControl: OnDblClick event added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDSwitch: TLMDWSwitch.TabOrder property is now published&amp;lt;br&amp;gt;&lt;br /&gt;
* Added enumerations support in TLMDWideStrings descendants&amp;lt;br /&amp;gt;&lt;br /&gt;
* TLMDSearchFileGrep. Added new property - Paused which allow to pause searching process&amp;lt;br&amp;gt;&lt;br /&gt;
* TLMDSearchFileGrep. Removing duplicate files from search result&amp;lt;br&amp;gt;&lt;br /&gt;
* TDocumentStringsProxy now inherited from TLMDMemoryStrings instead of TLMDStrings&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDBaseEdit: eoUserLocale option added (affects WMChar handling when CharCase = ecUpperCase and ecLowerCase)&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDDBHTMLLabel: LMDDBHTMLLabel.pas unit added (implements TLMDDBHTMLLabel)&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCustomBevelPanel: Creation of FBevel moved to virtual CreateBevel method&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDCustomSpeedButton: ButtonStyle is now automatically ubsWin40Ext for ThemeMode = ttmNative&amp;lt;br&amp;gt;&lt;br /&gt;
* Options property added were relevant in LMDCustomEdit descendants (user request);&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD ThemePack ===&lt;br /&gt;
* TLMDThemesRibbonAdapter component added (see description and screenshots in [[LMD VCL 2011 - What's New?#LMD_ThemePack|What's new]]  section)&amp;lt;br&amp;gt;&lt;br /&gt;
* TLMDThemesGradientThemeRenderer: SuppressUpdate property added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDThemesGradientThemeRenderer: OnDrawElement event added&amp;lt;br&amp;gt;&lt;br /&gt;
* Demo of using OnDrawElement event added&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDThemesControllerBase class added; several methods and properties added to TLMDThemeRenderer class;&amp;lt;Br&amp;gt;&lt;br /&gt;
* Events for custom drawing of arrows/checkmarks/etc added;&amp;lt;br&amp;gt;&lt;br /&gt;
* Controllers for gradient theme renderers added (TLMDThemesGradientThemeController, TLMDSimpleGradientThemeController, TLMDSimpleGradientExtThemeController);&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack ===&lt;br /&gt;
* LMDStorPropertiesStorage: ComplexPropDelimiter property added ('/' by default for compatibility)&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD ElPack ===&lt;br /&gt;
* ElTreeCombo: enhanced multi-monitor support&amp;lt;br&amp;gt;&lt;br /&gt;
* TElXTree inplace editors - now editing result validated by validators&amp;lt;br&amp;gt;&lt;br /&gt;
* TElCalendarForm now inherits from LMDDropdownForm&amp;lt;br&amp;gt;&lt;br /&gt;
* TEl(X)Tree. Improved validating in inplace editors&amp;lt;br&amp;gt;&lt;br /&gt;
* ElXTreeCell: HTMLControlsVisible property added&amp;lt;br&amp;gt;&lt;br /&gt;
* ElTree*Edit: property Font: TFont now available in TElTreeInplaceEditor&amp;lt;br&amp;gt;&lt;br /&gt;
* TElCalendar. Now when click user clicks on other month days calendar will navigate to this month and selected day&amp;lt;br&amp;gt;&lt;br /&gt;
* TElXTree. SelectAll method now has optional parameter ASelectWithCells to control selection with cells&amp;lt;br&amp;gt;&lt;br /&gt;
* ElXTree: GetHTMLControlByName method added, OnAdjustControlPosition event added &amp;lt;br&amp;gt;&lt;br /&gt;
* ElMenus: SelectedItemFont property added&amp;lt;br&amp;gt;&lt;br /&gt;
* TEl(X)Tree. Added OnEditKeyDown event&amp;lt;br /&amp;gt;&lt;br /&gt;
* ElHTMLView: LoadFromFile method added&amp;lt;br&amp;gt;&lt;br /&gt;
* ElShellCombo: VK_UP/VK_DOWN/VK_DOWN+Alt support added; Style prop published; csDropDownList look fixed&amp;lt;br&amp;gt;&lt;br /&gt;
* ElMenus: UseFontColor property added for TElMainMenu, TElPopupMenu&amp;lt;br&amp;gt;&lt;br /&gt;
* TElComboBox. Added ForcedTextClear property to clear text when setting ItemIndex to -1 for csSimple and csDropDown styles &amp;lt;br&amp;gt;&lt;br /&gt;
* TElComboBox. Added AutoCompletionProcessByAnyChange property&amp;lt;br&amp;gt;&lt;br /&gt;
* TElTreeStringGrid. Added ThemeMode and ThemeGlobalMode&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD IDE Pack ===&lt;br /&gt;
* Added Object assigning to TLMDEditDocument.Lines&amp;lt;br/&amp;gt;&lt;br /&gt;
* LMD SyntaxEdit: Font and ViewFont (ParentFont like) properties has been added to edit's print task. So, it is possible currently to print edit's content using different font without creating additional (temporary) view.&amp;lt;br&amp;gt;&lt;br /&gt;
* Native VBScript language support has been added to LMD ScriptPack. Fully native implementation; no external libraries or COM object are required. New language has a syntax similar to MS VBScript.&amp;lt;br&amp;gt;&lt;br /&gt;
* LMD-ScriptPack: Many minor issues has been fixed and several features have been enhanced in our native VM. Native scripts should now be faster and more stable.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack ===&lt;br /&gt;
* Added LMDChangeWindowMessageFilterEx to LMDShUtils&amp;lt;br /&amp;gt;&lt;br /&gt;
* TLMDShellTree. Added new method ClearCheckboxes&amp;lt;br&amp;gt;&lt;br /&gt;
* LMDShList: SuppressFolderNavigation property added, loUseSuppressFolderNavigation option added&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
=== LMD GridPack ===&lt;br /&gt;
* New SortingAllowed property has been adde to TLMDGridColumn class. This property can be used to prevent the possibility to sort a column data by clicking on column's header.&amp;lt;br&amp;gt;&lt;br /&gt;
* New Rating column type has been added. Among showing values, the column allows to edit them, by mouse-clicking on a grid-cell or by pressing '0'...'9' keys.&amp;lt;br&amp;gt;&lt;br /&gt;
* New Image column type has been added. It allows to show images from associated image list, based on the cell value.&amp;lt;br&amp;gt;&lt;br /&gt;
* New Progress column type has been added. Like Rating column it allows to edit progress values by mouse-clicking on a grid-cell.&amp;lt;br&amp;gt;&lt;br /&gt;
* Column.Color and Column.DefaultColor properties, which allows to draw every column in each own color.&amp;lt;br&amp;gt;&lt;br /&gt;
* New Column.AllowUndefinedValue; in addition handling of Null values has been implemented in ALL column editors. Seting Null value is even possible in Rating, Progress and Image columns pressing 'Del' key.&amp;lt;br&amp;gt;&lt;br /&gt;
* DrawGrayed property was added to CheckBox column type; Assigning False value to the property will allow to draw grayed state as an empty (white) cell.&amp;lt;br&amp;gt;&lt;br /&gt;
* Drawing speed and appearance was improved. Enhanced layout include the style of drop-downs controls like calendar, calculator, ect.&amp;lt;br&amp;gt;&lt;br /&gt;
{{Top}}&lt;br /&gt;
== Archive ==&lt;br /&gt;
* [[LMD VCL 2011 - What's New?|LMD VCL 2011 - What's new]]&lt;br /&gt;
* [[LMD VCL 2010 - What's New?|LMD VCL 2010 - What's new]]&lt;br /&gt;
* [[LMD VCL 2009 - What's New?|LMD VCL 2009 - What's new]]&lt;br /&gt;
* [[LMD VCL 2007 - What's New?|LMD VCL 2007 - What's new]]&lt;br /&gt;
{{Top}}&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMDThemes_GradientRenderer&amp;diff=3849</id>
		<title>LMDThemes GradientRenderer</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMDThemes_GradientRenderer&amp;diff=3849"/>
				<updated>2017-08-18T12:43:40Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== New units in LMDRtlx ===&lt;br /&gt;
&lt;br /&gt;
'''The new gradient theme engine''' was intended to implement themes imitating Office 2007/2010 look. Actually it allows to build and use a wider variety of themes. It uses universal and flexible architecture of gradient fillers which allows to combine complex configurations of gradients.&lt;br /&gt;
&lt;br /&gt;
These configurations, from the simplest to complex are:&amp;lt;br&amp;gt;- Solid filler;&amp;lt;br&amp;gt;- Gradient filler;&amp;lt;br&amp;gt;- Composition of fillers (any number of rectangular areas);&amp;lt;br&amp;gt;- Mix of fillers, where each filler in a blend has its weight;&amp;lt;br&amp;gt;- Mix of composition of fillers.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to implement the new renderer, we added several new graphical units, which can also be used separately. These are: LMDFillers, LMDFigures, LMDGradientFrames.&lt;br /&gt;
&lt;br /&gt;
==== LMDFillers ====&lt;br /&gt;
&lt;br /&gt;
LMDFillers unit contains base TLMDFiller class and its descendants for painting surfaces and borders of figures:&amp;lt;br&amp;gt;- TLMDSolidFiller (floodfills figure with given color);&amp;lt;br&amp;gt;- TLMDVerticalGradient, TLMDHorizontalGradient, TLMDEllipseFiller, TLMDRoundFiller, TLMDLineFiller, TLMDRectangleFiller, TLMDBandFiller (floodfills figure with a given gradient);&amp;lt;br&amp;gt;- TLMDCompositeFiller (floodfilles rectangular areas with given gradients);&amp;lt;br&amp;gt;- TLMDMixedFillers (floodfills figure with a blend of gradients).&lt;br /&gt;
&lt;br /&gt;
==== LMDFigures ====&lt;br /&gt;
&lt;br /&gt;
LMDFigures unit contains TLMDFigure class and its descendants:&amp;lt;br&amp;gt;-TLMDRectangle, TLMDCustomCutRectangle, TLMDRoundRectangle;&amp;lt;br&amp;gt;-TLMDLine;&amp;lt;br&amp;gt;-TLMDEllipse, TLMDCircle;&amp;lt;br&amp;gt;-TLMDUnionFigure, TLMDSubtractionFigure.&lt;br /&gt;
&lt;br /&gt;
==== LMDGradientFrames ====&lt;br /&gt;
&lt;br /&gt;
LMDGradientFrames unit contains TLMDBaseGradientFrame class and its descendants for painting different gradient frames:&lt;br /&gt;
&lt;br /&gt;
-TLMDGradientRectFrame draws rectangular frames consisting of three parts (outer border, inner space, inner border). These frames can have three types of corners: rectangular,&lt;br /&gt;
&lt;br /&gt;
round and line. Each corner of a frame can have its own cut type.&amp;lt;br&amp;gt;-TLMDGradientCircleFrame draws round frames consisting of three parts (outer border, inner space, inner border).&amp;lt;br&amp;gt;-TLMDGradientCmpFrame draws complex frames consisting of three sets of parts: outer borders parts, inner space parts and inner border parts, each set of parts consists of 4 sides and 4 corners. This class is not used for rendering Office2007-like themes.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New units in LMD ThemesPack ===&lt;br /&gt;
&lt;br /&gt;
The new renderer is implemented in LMDThemesGradientThemeBase unit which contains main base class TLMDBaseGradientThemeRenderer. The LMDThemesGradientThemeRenderer introduces no functionality - it is used for registering engine for using by application.&amp;lt;Br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Functionality ===&lt;br /&gt;
&lt;br /&gt;
The new renderer&amp;lt;br&amp;gt;- implements interface declared in TLMDThemeServices class (LMDThemes unit);&amp;lt;br&amp;gt;- allows to use Office2007-like themes (three built-in color schemes: blue, metallic, black);&amp;lt;br&amp;gt;- allows to get access to its settings via helper properties;&amp;lt;br&amp;gt;- allows to change colors and brightness for several elements at a time;&amp;lt;br&amp;gt;- can store themes in XML file;&amp;lt;br&amp;gt;- can read themes from XML file and from CAB file (if it contains XML theme file).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
&lt;br /&gt;
Each themed element has two arrays of corresponding descriptors, array of fill descriptors and array of frame descriptors:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;ButtonFill: array[TThemedButton] of TLMDGradientThemeFillDescriptor;&lt;br /&gt;
ButtonFrame: array[TThemedButton] of TLMDGradientThemeFrameDescriptor;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Also, themed element can have array of text descriptors, but in current version text descriptor is used only for setting colors of font in tab text (for teTab element).&amp;lt;br&amp;gt;A gradient theme descriptor is a record that consists of parameters section and filler section:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;type&lt;br /&gt;
 TLMDGradientThemeFillDescriptor = record&lt;br /&gt;
    Params: TLMDGradientThemeFillParams;&lt;br /&gt;
    Fillers: array[TLMDGradientFillPart] of TLMDFiller;&lt;br /&gt;
 end;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
 TLMDGradientThemeFrameDescriptor = record&lt;br /&gt;
    Params: TLMDGradientThemeFrameParams;&lt;br /&gt;
    Fillers: array[TLMDGradientSFramePart] of TLMDFiller;&lt;br /&gt;
 end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A fill descriptor determines how element's inner area is painted, whereas a frame descriptor determines how element's frame is painted.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Loading, activating and deactivating themes ===&lt;br /&gt;
&lt;br /&gt;
Nothing was changed here: in order to use the new renderer you have to put a reference to LMDThemesGradientThemeRenderer unit somewhere in your application. Initialization section of this unit registers renderer so that application can use it for painting controls with ThemeMode = ttmNative. When renderer is active, active theme and color scheme can be changed by loading theme from file&lt;br /&gt;
&lt;br /&gt;
 LMDThemeServices.ActivateTheme('Office2007.cab', 'Metallic');&lt;br /&gt;
&lt;br /&gt;
or by activating built-in color scheme:&lt;br /&gt;
&lt;br /&gt;
 LMDThemeServices.ActivateColorScheme('Black');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to deactivate native theme and switch to current system theme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
, simply call LMDThemeServices.DeactivateTheme method.&lt;br /&gt;
&lt;br /&gt;
=== Changing colors and other params in run-time ===&lt;br /&gt;
&lt;br /&gt;
==== Mass changing methods ====&lt;br /&gt;
&lt;br /&gt;
There are three methods that allow to change colors for several themed elements/details at a time:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure ChangeBrightness(aPercent: integer; aElements: TThemedElementSet = []; aDetailNameMask: string = ''; aFillParts: TLMDGradientFillParts = cGradientFillAllParts; aFrameParts: TLMDGradientSFrameParts = cGradientSFrameAllParts; aIndex: integer = -1);&lt;br /&gt;
&lt;br /&gt;
procedure ReplaceColor(aOldColor, aNewColor: TColor; aElements: TThemedElementSet = []; aDetailNameMask: string = ''; aFillParts: TLMDGradientFillParts = cGradientFillAllParts; aFrameParts: TLMDGradientSFrameParts = cGradientSFrameAllParts; aIndex: integer = -1);&lt;br /&gt;
&lt;br /&gt;
procedure SetNewColor(aNewColor: TColor; aElements: TThemedElementSet = []; aDetailNameMask: string = ''; aFillParts: TLMDGradientFillParts = cGradientFillAllParts; aFrameParts: TLMDGradientSFrameParts = cGradientSFrameAllParts; aIndex: integer = 0);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Each of these methods walks through all fillers for given element, given detail name mask, fill or frame part and performs required change. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note''': '''ChangeBrightness''' and '''ReplaceColor''' apply change for all color entries starting from given index , whereas SetNewColor changes one color entry with a given index.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;//walks through all fillers for teTab element, for details like 'ttTopTabItem*' &lt;br /&gt;
 //and sets new color for each FixedColors entry with index 0&lt;br /&gt;
 SetNewColor($0000FFFF, [teTab], 'ttTopTabItemHot*', [gfpMain], [], 0);&lt;br /&gt;
&lt;br /&gt;
 //replaces each color entry with value $00F8E0CE by a new value $00F8D0BE&lt;br /&gt;
 ReplaceColor($00F8E0CE, $00F8D0BE);&lt;br /&gt;
&lt;br /&gt;
 //Changes brightness of all colors: &lt;br /&gt;
 ChangeBrightness(-10, []);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Direct access to colors and filler properties ====&lt;br /&gt;
&lt;br /&gt;
Properties like *FillFiller, *FrameFiller allow to get direct access to fillers. Using them requires knowledge of how the filler is structured. Filler structure can be browsed in XML file. For&lt;br /&gt;
&lt;br /&gt;
Office2007-like themes a filler is usually either solid filler, vertical/horizontal/elliptic gradient, composite filler of a mixed filler.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, this is how we can change start gradient color for teTab element, detail ttTopTabItemHot:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;with CThemeRenderer do&lt;br /&gt;
 TLMDCompositeFiller(TLMDMixedFiller(TabFillFiller[ttTopTabItemHot, gfpMain]).Item[0]).Item[0].FixedColors[0]&amp;amp;nbsp;:= clRed;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This is rather complex construction because the filler in this case is a mix of composite filler and elliptic gradient:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Filler Class=&amp;quot;TLMDMixedFiller&amp;quot; Part=&amp;quot;gfpMain&amp;quot; ItemCount=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;UseRelativeUnits Value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;Item Index=&amp;quot;0&amp;quot; Weight=&amp;quot;255&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Filler Class=&amp;quot;TLMDCompositeFiller&amp;quot; ItemCount=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UseRelativeUnits Value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;Item Index=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;FillerRect Left=&amp;quot;0&amp;quot; Top=&amp;quot;0&amp;quot; Right=&amp;quot;100&amp;quot; Bottom=&amp;quot;45&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Filler Class=&amp;quot;TLMDVerticalGradient&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Colors ColorCount=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;Color0 Value=&amp;quot;$00FEDDC4&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;Color1 Value=&amp;quot;clWhite&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/Colors&amp;gt;&lt;br /&gt;
                &amp;lt;/Filler&amp;gt;&lt;br /&gt;
            &amp;lt;/Item&amp;gt;&lt;br /&gt;
            &amp;lt;Item Index=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;FillerRect Left=&amp;quot;0&amp;quot; Top=&amp;quot;45&amp;quot; Right=&amp;quot;100&amp;quot; Bottom=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Filler Class=&amp;quot;TLMDVerticalGradient&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;Colors ColorCount=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;Color0 Value=&amp;quot;$00FEDDC4&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;Color1 Value=&amp;quot;clWhite&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/Colors&amp;gt;&lt;br /&gt;
                &amp;lt;/Filler&amp;gt;&lt;br /&gt;
            &amp;lt;/Item&amp;gt;&lt;br /&gt;
        &amp;lt;/Filler&amp;gt;&lt;br /&gt;
    &amp;lt;/Item&amp;gt;&lt;br /&gt;
    &amp;lt;Item Index=&amp;quot;1&amp;quot; Weight=&amp;quot;255&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Filler Class=&amp;quot;TLMDEllipseFiller&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;UseRelativeUnits Value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;BasePoint X=&amp;quot;50&amp;quot; Y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;Axis1 Value=&amp;quot;80&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;Axis2 Value=&amp;quot;80&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;FirstAxisDirection X=&amp;quot;1&amp;quot; Y=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;Colors ColorCount=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;Color0 Value=&amp;quot;$00FEDDC4&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;Color1 Value=&amp;quot;$0098D1E3&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/Colors&amp;gt;&lt;br /&gt;
        &amp;lt;/Filler&amp;gt;&lt;br /&gt;
    &amp;lt;/Item&amp;gt;&lt;br /&gt;
&amp;lt;/Filler&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, we have to take filler for main fill part (gfpMain index), ttTopTabItemHot detail:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TabFillFiller[ttTopTabItemHot, gfpMain]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
then cast it to TLMDMixedFiller and take the first item, which is a composite filler:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDMixedFiller( * ).Item[0])&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
then cast it to TLMDCompositeFiller and take the first item which is a vertical gradient, and change the first color:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDCompositeFiller( * ).Item[0].FixedColors[0]&amp;amp;nbsp;:= clRed;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Changing other filler properties ====&lt;br /&gt;
&lt;br /&gt;
Each filler has BasePoint property which determines the coordinate origin for filler. Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;with CThemeRenderer do&lt;br /&gt;
 begin&lt;br /&gt;
 //This will change base point of ellipse gradient filler (bottom part of the filler)&lt;br /&gt;
 //Coordinates are relative to rectangle of the element: (100, 100) is&lt;br /&gt;
 //the bottom right corner&lt;br /&gt;
 TLMDCompositeFiller(ButtonFillFiller[tbPushButtonPressed, gfpMain]).Item[1].BasePoint&amp;amp;nbsp;:= Point(100, 100);&lt;br /&gt;
 TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[1].BasePoint&amp;amp;nbsp;:= Point(0, 100);&lt;br /&gt;
 end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Parameters - detailed description ===&lt;br /&gt;
&lt;br /&gt;
Parameters section is a simple one for fill descriptors and rather complex for frame descriptors. However, each parameter is a byte.&lt;br /&gt;
&lt;br /&gt;
==== Fill descriptors ====&lt;br /&gt;
&lt;br /&gt;
Here we have one parameter: gflpRenderMode (prefix gflp: '''g'''radient '''f'''il'''l''' '''p'''arameter)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;type&lt;br /&gt;
 TLMDGradientThemeFillParam = (gflpRenderMode);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
    Bits 0..1: 0 - standard, 1 - sketch, 2 and 3 - reserved;&lt;br /&gt;
    Bit 2 - antialiasing for gfpMain;&lt;br /&gt;
    Bits 3..6 - antialiasing for gfpDeco1..gfpDeco4.&lt;br /&gt;
    Standard value is 4: 0000 0010.&lt;br /&gt;
&lt;br /&gt;
==== Frame descriptors ====&lt;br /&gt;
&lt;br /&gt;
Here we have a lot of parameters (prefix gfrp: '''g'''radient '''fr'''ame '''p'''arameter).&amp;lt;br&amp;gt;Most of frame parameters relate to determining how corners of a frame should look. For custom cut rectangle, CutX and CutY are the values that, along with corner cut type, determine how corner looks. E.g. here is a round-cut corner with its CutX and CutY values:&amp;lt;br&amp;gt;[[Image:Cutxy.PNG|Image:cutxy.PNG]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Since there are three possible areas of a frame (outer border, inner space and inner border), each of which can have its own corners description, the number of parameters section of a frame descriptor is about 40:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;type&lt;br /&gt;
 TLMDGradientThemeFrameParam =&lt;br /&gt;
 ( &lt;br /&gt;
 //gfrpRenderMode&lt;br /&gt;
 //bits 0..1: 0 - standard, 1 - sketch, 2 and 3 - reserved&lt;br /&gt;
 //bit 2: outerborder antialasing flag - 4&lt;br /&gt;
 //bit 3: outerborder soft edge flag - 8&lt;br /&gt;
 //bit 4: innerspace antialasing flag - 16&lt;br /&gt;
 //bit 5: innerspace soft edge flag - 32&lt;br /&gt;
 //bit 6: innerborder antialasing flag - 64&lt;br /&gt;
 //bit 7: innerborder soft edge flag - 128&lt;br /&gt;
 //---------------- bits 7654 3210&lt;br /&gt;
 //standard value is 84: 0101 0100&lt;br /&gt;
 gfrpRenderMode, &lt;br /&gt;
&lt;br /&gt;
 //determine what sides of the border should be drawn&lt;br /&gt;
 gfrpOuterBorderSides, &lt;br /&gt;
 gfrpInnerBorderSides,&lt;br /&gt;
&lt;br /&gt;
 //determine edge width - each of border areas can have edges. Not used for Office2007-like themes&lt;br /&gt;
 gfrpOuterBorderEdgeWidth, &lt;br /&gt;
 gfrpInnerBorderEdgeWidth,&lt;br /&gt;
 gfrpSpaceEdgeWidth,&lt;br /&gt;
&lt;br /&gt;
 //determine border areas width&lt;br /&gt;
 gfrpOuterBorderWidth, gfrpInnerBorderWidth,&lt;br /&gt;
 //determines gap width between border area and innerspace area&lt;br /&gt;
 gfrpOuterBorderGap, gfrpInnerBorderGap,&lt;br /&gt;
&lt;br /&gt;
 //determine inner space widths&lt;br /&gt;
 gfrpTopSpaceWidth, gfrpRightSpaceWidth,&lt;br /&gt;
 gfrpBottomSpaceWidth, gfrpLeftSpaceWidth,&lt;br /&gt;
&lt;br /&gt;
 //determines how cut values are calculated&lt;br /&gt;
 //Possible values are &lt;br /&gt;
 //cvuBoth - both cut values are used&lt;br /&gt;
 //cvuXOnly - only CutX value is used&lt;br /&gt;
 //cvuYOnly - only CutY value is used&lt;br /&gt;
 //cvuMin - minimum of CutX and CutY values is used&lt;br /&gt;
 //cvuMax - maximum of CutX and CutY values is used &lt;br /&gt;
 //cvuAverage - average of CutX and CutY values is used&lt;br /&gt;
 gfrpCutValueUsage,&lt;br /&gt;
&lt;br /&gt;
 //determine inner and outer cut type for outer border&lt;br /&gt;
 //Possible values are ctNone (rectangular corner), ctLine (line-cut corner), ctRound (rounded corner)&lt;br /&gt;
 gfrpOuterBorderInnerCutType, gfrpOuterBorderOuterCutType,&lt;br /&gt;
&lt;br /&gt;
 //CutX and CutY values for inner and outer corners of outer border&lt;br /&gt;
 gfrpOuterBorderInnerCutX, gfrpOuterBorderInnerCutY,&lt;br /&gt;
 gfrpOuterBorderOuterCutX, gfrpOuterBorderOuterCutY,&lt;br /&gt;
&lt;br /&gt;
 //value types for outer border cut values&lt;br /&gt;
 //Possible values are vtAbsolute, vtPercent&lt;br /&gt;
 gfrpOuterBorderInnerCutXValueType, gfrpOuterBorderInnerCutYValueType,&lt;br /&gt;
 gfrpOuterBorderOuterCutXValueType, gfrpOuterBorderOuterCutYValueType,&lt;br /&gt;
&lt;br /&gt;
 //determine inner and outer cut type for inner space&lt;br /&gt;
 gfrpInnerSpaceInnerCutType, gfrpInnerSpaceOuterCutType,&lt;br /&gt;
&lt;br /&gt;
 //CutX and CutY values for inner and outer corners of inner space&lt;br /&gt;
 gfrpInnerSpaceInnerCutX, gfrpInnerSpaceInnerCutY,&lt;br /&gt;
 gfrpInnerSpaceOuterCutX, gfrpInnerSpaceOuterCutY,&lt;br /&gt;
&lt;br /&gt;
 //value types for inner space cut values&lt;br /&gt;
 gfrpInnerSpaceInnerCutXValueType, gfrpInnerSpaceInnerCutYValueType,&lt;br /&gt;
 gfrpInnerSpaceOuterCutXValueType, gfrpInnerSpaceOuterCutYValueType,&lt;br /&gt;
&lt;br /&gt;
 //determine inner and outer cut type for inner border&lt;br /&gt;
 gfrpInnerBorderOuterCutType, gfrpInnerBorderInnerCutType,&lt;br /&gt;
&lt;br /&gt;
 //CutX and CutY values for inner and outer corners of inner border&lt;br /&gt;
 gfrpInnerBorderOuterCutX, gfrpInnerBorderOuterCutY,&lt;br /&gt;
 gfrpInnerBorderInnerCutX, gfrpInnerBorderInnerCutY,&lt;br /&gt;
&lt;br /&gt;
 //value types for inner border cut values&lt;br /&gt;
 gfrpInnerBorderOuterCutXValueType, gfrpInnerBorderOuterCutYValueType,&lt;br /&gt;
 gfrpInnerBorderInnerCutXValueType, gfrpInnerBorderInnerCutYValueType);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Code samples ===&lt;br /&gt;
&lt;br /&gt;
==== Delphi ====&lt;br /&gt;
''Changing outer border of a push button''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
cThemeRenderer := TLMDBaseGradientThemeRenderer(LMDThemeServices.CurrentRenderer);&lt;br /&gt;
with CThemeRenderer do&lt;br /&gt;
  begin&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpOuterBorderWidth] := 2;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpOuterBorderWidth] := 2;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpOuterBorderWidth] := 2;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpOuterBorderWidth] := 2;&lt;br /&gt;
  end;&lt;br /&gt;
LMDThemeServices.ApplyThemeChange;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Changing outline of a push button''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
with CThemeRenderer do&lt;br /&gt;
  begin&lt;br /&gt;
    //See full list of frame params in LMDThemesGradientThemeBase unit&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpOuterBorderOuterCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpOuterBorderInnerCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpOuterBorderOuterCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpOuterBorderInnerCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpOuterBorderOuterCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpOuterBorderInnerCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpOuterBorderOuterCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpOuterBorderInnerCutType] := LMDCornerCutToByte(cLineCutCorners);&lt;br /&gt;
&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpOuterBorderOuterCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpOuterBorderInnerCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpInnerBorderOuterCutX] := 7;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonNormal, gfrpInnerBorderInnerCutX] := 7;&lt;br /&gt;
&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpOuterBorderOuterCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpOuterBorderInnerCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpInnerBorderOuterCutX] := 7;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonHot, gfrpInnerBorderInnerCutX] := 7;&lt;br /&gt;
&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpOuterBorderOuterCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpOuterBorderInnerCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpInnerBorderOuterCutX] := 7;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonPressed, gfrpInnerBorderInnerCutX] := 7;&lt;br /&gt;
&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpOuterBorderOuterCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpOuterBorderInnerCutX] := 6;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpInnerBorderOuterCutX] := 7;&lt;br /&gt;
    ButtonFrameParam[tbPushButtonDisabled, gfrpInnerBorderInnerCutX] := 7;&lt;br /&gt;
  end;&lt;br /&gt;
LMDThemeServices.ApplyThemeChange;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Changing base point of an elliptic gradient of a push button''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
with CThemeRenderer do&lt;br /&gt;
  begin&lt;br /&gt;
    TLMDCompositeFiller(ButtonFillFiller[tbPushButtonPressed, gfpMain]).Item[1].BasePoint := Point(100, 100);&lt;br /&gt;
    TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[1].BasePoint := Point(0, 100);&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Adding third gradient area for a push button''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
with CThemeRenderer do&lt;br /&gt;
  begin&lt;br /&gt;
    with TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]) do&lt;br /&gt;
      begin&lt;br /&gt;
        Add(TLMDVerticalGradient.Create);&lt;br /&gt;
        FillerRect[0] := Rect(0, 0, 100, 10);&lt;br /&gt;
        FillerRect[1] := Rect(0, 10, 100, 80);&lt;br /&gt;
        FillerRect[2] := Rect(0, 80, 100, 100);&lt;br /&gt;
        Item[2].FixedColors[0] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[0].FixedColors[1];&lt;br /&gt;
        Item[2].FixedColors[1] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[0].FixedColors[0];&lt;br /&gt;
      end;&lt;br /&gt;
&lt;br /&gt;
    with TLMDCompositeFiller(ButtonFillFiller[tbPushButtonPressed, gfpMain]) do&lt;br /&gt;
      begin&lt;br /&gt;
        Add(TLMDVerticalGradient.Create);&lt;br /&gt;
        FillerRect[0] := Rect(0, 0, 100, 10);&lt;br /&gt;
        FillerRect[1] := Rect(0, 10, 100, 85);&lt;br /&gt;
        FillerRect[2] := Rect(0, 85, 100, 100);&lt;br /&gt;
        Item[2].FixedColors[0] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[2].FixedColors[0];&lt;br /&gt;
        Item[2].FixedColors[1] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonHot, gfpMain]).Item[2].FixedColors[1];&lt;br /&gt;
      end;  &lt;br /&gt;
&lt;br /&gt;
    with TLMDCompositeFiller(ButtonFillFiller[tbPushButtonNormal, gfpMain]) do&lt;br /&gt;
      begin&lt;br /&gt;
        Add(TLMDVerticalGradient.Create);&lt;br /&gt;
        FillerRect[0] := Rect(0, 0, 100, 10);&lt;br /&gt;
        FillerRect[1] := Rect(0, 10, 100, 85);&lt;br /&gt;
        FillerRect[2] := Rect(0, 85, 100, 100);&lt;br /&gt;
        Item[2].FixedColors[0] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonNormal, gfpMain]).Item[0].FixedColors[1];&lt;br /&gt;
        Item[2].FixedColors[1] := TLMDCompositeFiller(ButtonFillFiller[tbPushButtonNormal, gfpMain]).Item[0].FixedColors[0];&lt;br /&gt;
      end;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== C++ Builder ====&lt;br /&gt;
''Changing hot tab colors of LMDPageControl''&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
  TLMDBaseGradientThemeRenderer *cThemeRenderer;&lt;br /&gt;
  TLMDFiller *filler;&lt;br /&gt;
  TLMDCompositeFiller *cfiller;&lt;br /&gt;
  TLMDMixedFiller *mfiller;&lt;br /&gt;
&lt;br /&gt;
  cThemeRenderer = (TLMDBaseGradientThemeRenderer*)LMDThemeServices()-&amp;gt;CurrentRenderer;&lt;br /&gt;
  cThemeRenderer-&amp;gt;SetNewColor(&lt;br /&gt;
    0x0000FFFF,&lt;br /&gt;
    Lmdthemescommontypes::TThemedElementSet() &amp;lt;&amp;lt; teTab,&lt;br /&gt;
    &amp;quot;ttTopTabItemHot&amp;quot;,&lt;br /&gt;
    TLMDGradientFillParts() &amp;lt;&amp;lt; gfpMain,&lt;br /&gt;
    Lmdgradientframes::TLMDGradientSimpleFramePartKinds(),&lt;br /&gt;
    0&lt;br /&gt;
  );&lt;br /&gt;
  filler = cThemeRenderer-&amp;gt;TabFillFiller[ttTopTabItemHot][gfpMain];&lt;br /&gt;
  mfiller = (TLMDMixedFiller*)filler;&lt;br /&gt;
  cfiller = (TLMDCompositeFiller*)(mfiller-&amp;gt;Item[0]);&lt;br /&gt;
  cfiller-&amp;gt;Item[0]-&amp;gt;FixedColors[0] = clRed;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
=== Predefined color schemes ===&lt;br /&gt;
&lt;br /&gt;
'''Blue'''&amp;lt;br&amp;gt;[[Image:Office2007blue.png|Image:office2007blue.png]]&amp;lt;br&amp;gt;'''Metallic'''&amp;lt;br&amp;gt;[[Image:Office2007metallic.png|Image:office2007metallic.png]]&amp;lt;br&amp;gt;'''Black'''&amp;lt;br&amp;gt;[[Image:Office2007black.png|Image:office2007black.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ElXTree, ElToolBar and LMDButtonBar ===&lt;br /&gt;
&lt;br /&gt;
'''With blue color scheme'''&amp;lt;br&amp;gt;[[Image:Office2007blue elpack.png|Image:office2007blue_elpack.png]]&amp;lt;br&amp;gt;'''With black color scheme'''&amp;lt;br&amp;gt;[[Image:Office2007black elpack.png|Image:office2007black_elpack.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changing colors at runtime ===&lt;br /&gt;
&lt;br /&gt;
'''Third gradient area added for push buttons, tab colors modified'''&amp;lt;br&amp;gt;[[Image:Office2007blue changecolors.png|Image:office2007blue_changecolors.png]]&amp;lt;br&amp;gt;'''Base point changed for push buttons'''&amp;lt;br&amp;gt;[[Image:Office2007darkblue bpchanged.png|Image:office2007darkblue_bpchanged.png]]&amp;lt;br&amp;gt;'''Dark blue scheme (brightness -30%)'''&amp;lt;br&amp;gt;[[Image:Office2007darkblue moregrads.png|Image:office2007darkblue_moregrads.png]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_IDE-Tools&amp;diff=3848</id>
		<title>LMD 2010 - History LMD IDE-Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_IDE-Tools&amp;diff=3848"/>
				<updated>2017-08-18T12:40:55Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD IDE-Tools 3.0 and corresponding standalone packs.&amp;lt;br&amp;gt; First official release: '''25-Aug-2009'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; Major version numbers are:&amp;lt;br&amp;gt; LMD IDE-Tools 3.0, LMD DesignPack 5.1, LMD ScriptPack 6.0, LMD SyntaxEdit 2.1&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
&lt;br /&gt;
==== Release 3.17 (26-October-2010) ====&lt;br /&gt;
[*] Minor bug fixes and general enhancements&lt;br /&gt;
&lt;br /&gt;
==== Release 3.16 (31-August-2010) ====&lt;br /&gt;
[+] Delphi / C++Builder XE installer&lt;br /&gt;
&lt;br /&gt;
==== Release 3.15 (16-August-2010) ====&lt;br /&gt;
[+-] lmd.syntax: memory footprint improved in TLMDEditDocument &amp;lt;br&amp;gt; &lt;br /&gt;
[+-] lmd.syntax: Bug fixed with loading/reloading files &amp;gt; 80 MB: http://lmd.de/newsgroups/newsgroups.php?art_group=lmd.public.vcl.idetools&amp;amp;article_id=919 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.14 (26-July-2010) ====&lt;br /&gt;
&lt;br /&gt;
[-] bug fix in TLMDPrinter code, in BeginDoc on some printers. (problem with TPrinter.BeginDoc and global variable there)&lt;br /&gt;
&lt;br /&gt;
==== Release 3.12 (14-June-2010) ====&lt;br /&gt;
&lt;br /&gt;
[*] Minor bug fixes and general enhancements&lt;br /&gt;
&lt;br /&gt;
==== Release 3.11 (19-May-2010) ====&lt;br /&gt;
&lt;br /&gt;
''SyntaxEdit''&amp;lt;br&amp;gt; [+] Block mode selection (with Alt key pressed) implemented in View. Works for copy/paste and drag/drop operations.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.10.02 (06-May-2010) ====&lt;br /&gt;
&lt;br /&gt;
[*] Minor bug fixes and general enhancements&lt;br /&gt;
&lt;br /&gt;
==== Release 3.09 (26-Mar-2010) ====&lt;br /&gt;
&lt;br /&gt;
[*] Minor bug fixes and general enhancements&lt;br /&gt;
&lt;br /&gt;
==== Release 3.08 (28-Feb-2010) ====&lt;br /&gt;
&lt;br /&gt;
[*] General enhancements&lt;br /&gt;
&lt;br /&gt;
==== Release 3.07 (28-Jan-2010) ====&lt;br /&gt;
&lt;br /&gt;
[+] LMD ScriptPack: Excel Demo (COM) added&amp;lt;br&amp;gt; [-] Syntax Edit: Minor fixes in CustomEditView&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Help file installer (updated)'''&amp;lt;br&amp;gt; [*] Improvements for Delphi/C++ Builder 2010 Help integration&amp;lt;br&amp;gt; [+] Win32 Help installer include again Delphi/C++ Builder 6 Helpfile integration options&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06 (16-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
This is mainly a release to work around a problem introduced with recent Delphi 2010 Updates in the shared runtime. The following line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite = procedure(Sender: TObject; var Target: Text) of object;&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
causes now a TI894 internal error. &amp;lt;br&amp;gt; This method signature is used OnHeaderWrite events in TLMDApplication class and TLMDApplicationCtrl control. For Delphi 2010 and above this line is now changed to:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite=procedure(Sender: TObject;const Target: TStringList) of object;&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
This is a breaking change. If you used this event you need to change your code slightly (add your header lines now to Stringlist instead writing to a TEXT variable.&amp;lt;br&amp;gt; Please also note that this problem appeared for source code user in Delphi/C++ Builder with Update 2 or higher only. If you are not affected by this problem there is no need to update to .06 release.&amp;lt;br&amp;gt; [*] Memory leak in LMDVistaDialog.pas was fixed.&amp;lt;br&amp;gt; [+] Added OldFilter property for TLMDCustomFileDialog.FileTypes, you now be able to set old filters like this Text files (*.txt)|*.TXT&amp;lt;br&amp;gt; [*] Added default option to enable sizing in dealogs in OSes previous than Vista&amp;lt;br&amp;gt; [*] TLMDPngObject - fixed drawing on Vista glass&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05 (14-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] BTS #752: Problem with Unicode property names in PropertyInspector control fixed.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04 (23-Nov-2009) ====&lt;br /&gt;
&lt;br /&gt;
[*] Minor changes related to changes in LMD2010 Common Runtime&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03 (15-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
[*] Demos updated (especially for C++)&amp;lt;br&amp;gt; [-] Several fixes regarding XML support which caused problems in certain areas&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (02-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
''IDE-Tools''&lt;br /&gt;
&lt;br /&gt;
[*] Some minor fixes.&amp;lt;br&amp;gt;[+] New advanced IDE demo shows new debugging features of the LMD-ScriptPack and new debug related IDE-Tools controls. Also this demo implements Delphi like layouts using LMD-DockingPack.&lt;br /&gt;
&lt;br /&gt;
''ScriptPack''&amp;lt;br&amp;gt; [+] New Modules collection has been added to the debugger. Items in the collection is of TLMDDebugModule class. A debug module is the abstract representation of the debugging module/source-file. It was added mainly to implement two following ideas: first, to allow to setup and maintain the breakpoints during design-time in the scripting-IDE (e.g. while the script project is not running and no script controls are exsist); and second, to allow to associate more then one script control with the same debug module at run-time (e.g. like more then one form of the same class can be created in Delphi application at run-time).&amp;lt;br&amp;gt; [*] Despite the old DebugName property is supported in the script control, its value is only a consequence of the new DebugModule property. The new DebugModule property should be used to associate a script control with the debug module. &amp;lt;br&amp;gt; [*] The breakpoints are now set on the debug module as a whole, not on the concrete script control. So, all associated with the module script controls will break at run-time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''SyntaxEdit''&amp;lt;br&amp;gt; [+-] ILMDLineMark and ILMDMark merged into one ILMDMark interface. &amp;lt;br&amp;gt; Also, all interfaces/classes/methods related to ILMDLineMark now working as aliases to correspondent ILMDMark code, and marked as deprecated (old with ILMDLineMark using code should still work). &amp;lt;br&amp;gt; [+] Added support for custom debugger frame markers: see types/properties: &amp;lt;br&amp;gt; TLMDDebugFrameKind, TLMDEditDocument.DebugFrameLines/GetDebugFrameKind/SetDebugFrameKind, &amp;lt;br&amp;gt; TLMDGutter.DebugFrameTopImg/DebugFrameActiveImg/DebugFrameImg, &amp;lt;br&amp;gt; TLMDCustomEditView.DebugFrameLineColor/DebugFrameLineBg/DebugFrameActiveLineColor/DebugFrameActiveLineBg/DebugFrameTopLineColor/DebugFrameTopLineBg. &amp;lt;br&amp;gt; Those properties works as correspondent Breakpoint support properties (TLMDEditDocument.Breakpoints and other), and used to mark stack frame lines from some custom IDE debugger. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (08-Sep-2009) ====&lt;br /&gt;
&lt;br /&gt;
''ScriptPack''&amp;lt;br&amp;gt; [-] BTS #0732: intermittent &amp;quot;Undeclared identifier&amp;quot;in PascalScript has been fixed. &amp;lt;br&amp;gt; [-] BTS #0731 and #0730: endless loop while parsing code has been fixed. &amp;lt;br&amp;gt; [-] BTS #0728: loosing some property values because of unproper form handle recreation in design-panel has been fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.0 (25-Aug-2009) ====&lt;br /&gt;
&lt;br /&gt;
Initial Release.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_ElPack&amp;diff=3847</id>
		<title>LMD 2010 - History LMD ElPack</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_ElPack&amp;diff=3847"/>
				<updated>2017-08-18T12:39:22Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD ElPack 8.0 releases.&amp;lt;br&amp;gt;First official release: '''25-Aug-2009'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; &lt;br /&gt;
[*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
&lt;br /&gt;
==== Release 8.17 (26-October-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElSBHook: issues related to application freeze when running several instances of application with ElPack components - fixed&amp;lt;br&amp;gt;[-] ElBiProgr, TELBiProgressBar: division by 0 error in non-themed mode fixed&amp;lt;br&amp;gt;[-] ElPgCtl, TElPageControl: handling WM_MouseWheel message in children controls fixed&amp;lt;br&amp;gt;[+] ElCaption: DownImages and DisabledImages image lists added&amp;lt;br&amp;gt;[+]&amp;amp;nbsp;Const LMDDisableOleinit&amp;amp;nbsp;added, {$IFDEF LMDDISABLE_OLEINIT} removed&amp;lt;br&amp;gt;[-] ElCombos: AdjustRegion fixed&amp;lt;br&amp;gt;[-] ElCombos: incorrect text color when control is focused and text is not empty (classic mode in Vista and upper) - fixed&amp;lt;br&amp;gt;[-] ElCombos: incorrect arrow drawing in Vista/Windows7 classic mode fixed&amp;lt;br&amp;gt;[-] ElEdits: text color for disabled edit control in classic mode fixed&amp;lt;br&amp;gt;[-] TElHeader: incorrect position after dragging fixed&amp;lt;br&amp;gt;[-] ElIni, TElIniFile: UTF8 writing/reading fixed&amp;lt;br&amp;gt;[-] TElPageControl: incorrect tabs drawing fixed&amp;lt;br&amp;gt;[-] TElPanel: setting Enabled property to true had no effect in runtime if set to false in design time&amp;lt;br&amp;gt;[-] ElTree: unclickable area issue in Win7 fixed&amp;lt;br&amp;gt;[-] TElTree/TElXTree: Application.Hint setting fixed&amp;lt;br&amp;gt;[-] LMDGlyphs: incorrect glyph drawing in classic mode (Vista and higher) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.16 (13-September-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElXtree, ElTree: GetFullExpand optimized (newsgroup suggestion)&amp;lt;br&amp;gt;[-] ElCombos: combobox region was not updated on resize - fixed (newsgroup rep &amp;quot;ElComboBox size&amp;quot; 10/09/2010)&amp;lt;br&amp;gt;[-] ElCombos: combobutton's arrow disappeared when changing to classic mode/ThemeGlobalMode=ttmNone - fixed&amp;lt;br&amp;gt;[-] ElBiProgr, ElPopBtn: ThemeGlobalMode property added to published clause&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Silent Update 31-August-2010'''&amp;lt;br&amp;gt;[+] Delphi / C++Builder XE installer&amp;lt;br&amp;gt;'''Silent Update 24-August-2010'''&amp;lt;br&amp;gt;[-] ElCaption: ImageList support issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.15 (16-August-2010)&amp;amp;nbsp; ====&lt;br /&gt;
[-] Fixed ElCaption captions drawing for themed windows&amp;lt;br&amp;gt;[+] TElGraphicButton. HotBackground now is published property&amp;lt;br&amp;gt;[*] TElDateTimePicker. OnChange event now fires only when all 4 digits of year are inputed.&amp;lt;br&amp;gt;[+] TElCaption. Added ImageList support for TElCaptionButtons&amp;lt;br&amp;gt;[+]&amp;amp;nbsp;&amp;amp;nbsp;ElCaption, ElPopBtn, ElToolBar, LMDGlyphs: GlyphMaskUsage&amp;amp;nbsp;property&amp;amp;nbsp;introduced for &amp;quot;fine tuning&amp;quot; of glyphs in ElCaption, ElPopBtn, ElToolBar&lt;br /&gt;
&lt;br /&gt;
==== Release 8.14 (26-July-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[+] LMDGlyphs: aMaskUsage parameter added in AddMasked method (possible values: force unmasked, force masked, use as defined in Masked property of the glyph list)&amp;lt;br&amp;gt;[-] LMDGlyphs: incorrect painting of transparent icon on button with ThemeMode = ttmNone - fixed&amp;lt;br&amp;gt;[-] ElPopBtn: icon was scaled wrong when UseArrow = true and ThemeMode = ttmNone - fixed&amp;lt;br&amp;gt;[-] ElHeader: bug in section deleting - fixed&amp;lt;br&amp;gt;[-] ElGroupBox, TElGroupBox: several AutoDisableChildren issues fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.13 (26-June-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] TElComboBox. Fixed border under Vista+&amp;lt;br&amp;gt;[-] TElCurrEdit. Fixed Disabled backaground.&amp;lt;br&amp;gt;[-] TElIniFile. Fixed garbage symbols saving&amp;lt;br&amp;gt;[+] TElPopupButton. Added property ResizableButtonImage to control stretching button icon.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.12 (14-June-2010)&amp;amp;nbsp; ====&lt;br /&gt;
[-] StyleManager Editor: IDE crashed when opening style editor if there is an instance of ElXTree on the form - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElStyleMan, StyleManager Editor: &amp;quot;Failed to find root item&amp;quot; issue fixed (style editor did not open in Delphi 2009 and higher because of encoding)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElPopBtn: GetArrowSize simplified; incorrect arrow size fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] [http://bts.lmd.de/mantis/view.php?id=771 BTS #771] fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.11 (19-May-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElXTree: black background flicker when Parent.DoubleBuffered = true removed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElTreeGrids: compiler hints removed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElCombos: GPF fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElPopBtn: disabled text drawing fixed for TElToolbarButton&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.10.02 (06-May-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[+] Added Greece ancent symbols &amp;lt;br&amp;gt;[*] ElBtnEdit: Fixed #769 Issue&amp;lt;br&amp;gt;[+] TElPanel and successors now set enable = false for all contained controls&amp;lt;br&amp;gt;[+] TElCurrEdit correctly accept numbers pasting from clipboard&amp;lt;br&amp;gt;[+] TElTrayIcon now supports balloon showing&amp;lt;br&amp;gt;[+] ElTray. Support for modern Windows versions such as Windows Vista, 7&amp;lt;br&amp;gt;[*] Fixed #770 issue&amp;lt;br&amp;gt;[*] ElXHeader:Fixed bug described in &amp;quot;Deleting columns in TElXTree header editor&amp;quot; and other TElXTreeEditor&amp;lt;br&amp;gt;[-] ElCurrEdit: BTS #765 fixed &amp;amp;nbsp;&amp;lt;br&amp;gt;[-] ElCombos: one-pixel gaps removed in combobox corners&amp;lt;br&amp;gt;[-] ElXHeader: Fixed BTS #766 bug&amp;lt;br&amp;gt;[-] ElMenus: Improved RighttoLeft drawing (rep. by Graham Powell)&amp;lt;br&amp;gt;[-] ElEdits: Fixed &amp;quot;Problem with custom scrollbars&amp;quot; (newsgroup)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;br&amp;gt;Release 8.09 (26-Mar-2010) ====&lt;br /&gt;
&lt;br /&gt;
[+] ElEdits, ElInputProcessor: TElDeadChar now supports WideChar, TElEdit now has DeadCharList public&amp;lt;br&amp;gt;[*] ElIni: Now D2010 and D2009 config is saved in utf8&amp;lt;br&amp;gt;[-] ElDTPick, ElXHeader: BTS #762 issue fized; but LockHeight doesn't work correctly yet&amp;lt;br&amp;gt;[-] ElMenus: BTS#764, #754 issues fixed&amp;lt;br&amp;gt;[-] ElMenus: fixed disabled color in ElMainMenu when form is MDIForm&amp;lt;br&amp;gt;[-] ElPanel: transparency issue for themed mode in ElGroupBox fixed [related issue BTS#758]&amp;lt;br&amp;gt;[-] ElPopUpBtn: glyph position for UseArrow=true fixed&amp;lt;br&amp;gt;[-] ElTreeStdEditors: OnExit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.08 (28-Feb-2010) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElBtnEdit, ElCombos, ElEdits: some issues of themed rendering in Vista/Windows7 fixed (dropdown button invisible issue - &amp;quot;TElComboBox, button size..&amp;quot; post in newsgroup, dropdown button in ElPopupBtn - &amp;quot;TElPopupButton UseArrow draws arrow too thin&amp;quot; post in newsgroup)&amp;lt;br&amp;gt;[-] BTS #758 runtime issue fixed&amp;lt;br&amp;gt;[+] InvertMinButton in TElExplorerBar now works in theme mode.&amp;lt;br&amp;gt;[*] Improved editing in TElSpinEdit&amp;lt;br&amp;gt;[-] Fixed incorrect Alignment when TElTree.ShowChecboxes and TElTree.SowEmptyImages is true&amp;lt;br&amp;gt;[-] Fixed error when TElTreeInplaceDTPickEditor loose focus&amp;lt;br&amp;gt;[-] Fixed 'Invalid Section' exception&amp;lt;br&amp;gt;[-] Fixed tree Header drawing for HTML sections&amp;lt;br&amp;gt;[-] Fixed TElXHeader move sections with merged cells&amp;lt;br&amp;gt;[-] Fixed min value ignoring in TElSpinEdit TElFloatSpinEdit&amp;lt;br&amp;gt;[-] Fixed merging menus showed for non MDI forms&amp;lt;br&amp;gt;[-] Fixed invalid caption height calculation in TElExplorerBar&amp;lt;br&amp;gt;[-] Fixed &amp;quot;Duplicated Call of OnAfterSelectionChange-Event of TElTreeStringGrid when clicking other row&amp;quot;&amp;lt;br&amp;gt;[-] Fixed &amp;quot;TElListBox and press &amp;amp;lt;Space&amp;amp;gt; or &amp;amp;lt;Enter&amp;amp;gt; (or other key) causes Listbox to select first entry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.07 (28-Jan-2010) ====&lt;br /&gt;
&lt;br /&gt;
[+] TElXTree: New property was added - IncrementalSearchSelectItem. It allows to control selected state of found item&amp;lt;br&amp;gt;[+] TElXTree: Added SortSections property to public section&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Added OnHTMLImageNeededEx event for TElHeader and TElXHeader components. (PNG Support for ElHeader)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElSpeedButton. Added TCustomeImageList support as source of state pictures&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElXTree: CustomPlusMinus property overrides theme settings now (so that custom plus-minus icons could be used in themed mode)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree. Fixed Moving and deleting HeaderSections and sync with item cells&lt;br /&gt;
[-] TElHeader: Sort mark was not drawn in themed mode, fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed BTS #751. Please be notified that this fix require Delphi 2009 Update 3/4 installed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed Flat drawing for themed TElPageControl when tabs on bottom or on Right&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed &amp;quot;No Scrolling possible per Scroll-Buttons if too many bigger cols are in a TElTreeStringGrid (ElPack 6-8)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed ElMenuBar MDI buttons hook when TElMenuBar isn't directly on form. Added OnAfterPasteClipboardText event&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed black background for ElMainMenus disabled items&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed TElPageControl etsNetTab tabs drawing issue&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Move TriggerSortEnd after IsUpdating&amp;amp;nbsp;:= false; in OnHeaderSectionClick method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Help file installer (updated)'''&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Improvements for Delphi/C++ Builder 2010 Help integration&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Win32 Help installer include again Delphi/C++ Builder 6 Helpfile integration options&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.06 (16-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
This is mainly a release to work around a problem introduced with recent Delphi 2010 Updates in the shared runtime. The following line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite = procedure(Sender: TObject; var Target: Text) of object;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
causes now a TI894 internal error. This method signature is used OnHeaderWrite events in TLMDApplication class and TLMDApplicationCtrl control. For Delphi 2010 and above this line is now changed to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite=procedure(Sender: TObject;const Target: TStringList) of object;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This is a breaking change. If you used this event you need to change your code slightly (add your header lines now to Stringlist instead writing to a TEXT variable.&amp;lt;br&amp;gt; Please also note that this problem appeared for source code user in Delphi/C++ Builder with Update 2 or higher only. If you are not affected by this problem there is no need to update to .06 release.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Memory leak in LMDVistaDialog.pas was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Added OldFilter property for TLMDCustomFileDialog.FileTypes, you now be able to set old filters like this Text files (*.txt)|*.TXT&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Added default option to enable sizing in dealogs in OSes previous than Vista&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDPngObject - fixed drawing on Vista glass&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.05 (14-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElFolderDlg: Behaviour on Windows 9x platforms with LMD_UNICODE switch enabled fixed&amp;lt;br&amp;gt;[*] ElEdits, ElIni: minor refactoring&amp;lt;br&amp;gt;[+] ElFontCombo: option for hiding @-prefixed fonts added&amp;lt;br&amp;gt;[-] ElShadowWindow: Fixed &amp;quot;Control ''has no parent window&amp;quot; exception in Windows 2000&amp;lt;br&amp;gt;''[-] BTS #754 fixed (TElXTree: Incorrect calculation of text alignment in columns)&amp;lt;br&amp;gt;[-] ElHeader, ElHeaderX: last empty section rendering fixed for ThemeMode=ttmNative&amp;lt;br&amp;gt;[-]&amp;amp;nbsp;BTS#758 fixed (Disappearing controls when adding&amp;amp;nbsp;ElPopBtn on the ElPanel in IDE)&amp;lt;br&amp;gt;[-] ElXTree: gutter rendering improved&amp;lt;br&amp;gt;[-] ElSBCtrl: minor refactoring (IsInRect -&amp;amp;gt; LMDPointInRect -&amp;amp;gt; LMDProcs)&amp;lt;br&amp;gt;[-] ElToolBar: ThemeMode was reset to ttmPlatform while loading from dfm if control is themed - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.04 (23-Nov-2009) ====&lt;br /&gt;
&lt;br /&gt;
[+] ElCombos: ForceItemHeight property added to TElComboBox&amp;lt;br&amp;gt;[+] ElCombos: SaveUnicode property added in TElComboBox &amp;lt;br&amp;gt;[-] ElDTPick.pas: Fixed AutoAdvance (Entering first digit in the year field moved cursor to hour field) &amp;lt;br&amp;gt;[-] ElPgCtl.pas: TabStop set to true by default&amp;lt;br&amp;gt;[-] ElXHeader: LockHeight was ignored - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[-] ElSpinEdit: Spin button rendering bug (extra pixels when ButtonWidth = 0) fixed&amp;lt;br&amp;gt;[-] ElIni: Fixed saving unicode ini files (added BOM marker). This change affects also ElStyleManager issue (*.els files written from D2009 could not be read)&amp;lt;br&amp;gt;[-] ElBtnEdit: AdjustBoundsRect fixed&amp;lt;br&amp;gt;[-] ElBtnEdit: ElComboBox dropdown button and ElButtonEdit main buttons were not visible - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.03 (15-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElTreeGrids: ChangeScale modified&amp;lt;br&amp;gt;[-] ElSpin: spin buttons sizes corrected&amp;lt;br&amp;gt;[-] ElBtnEdit: setting theme mode to ttmNative has no effect on AltButton - fixed&amp;lt;br&amp;gt;[-] ElRTTIInspector: BTS #745 issue fixed&amp;lt;br&amp;gt;[-] ElXTree: Fixed BTS #737, #738 issues&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.02 (02-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
[+] TElPopupMenu: IsPopuped property added&amp;lt;br&amp;gt;[+] ElWideDBMemo: Support of ftWideMemo field type &amp;lt;br&amp;gt;[+] ElXTree: PlusPosition property, which allows control of vertical position of plus/minus button&amp;lt;br&amp;gt;[-] ELMenuBar: BTS #740 &amp;lt;br&amp;gt;[-] ElStyleManager editor did not start - fixed&amp;lt;br&amp;gt;[-] ElXTree: mouse selection color fixed&amp;lt;br&amp;gt;[-] ElXTree: Draw order when HighAlphaLevel &amp;amp;lt; 255 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.01 (08-Sep-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElComboBox rendering with Style = csDropDownList in Vista was broken - fixed&amp;lt;br&amp;gt;[-] BTS#716: Properties AltButtonPngGlyph, AltButtonUsePng added for a number of controls&amp;lt;br&amp;gt;[-] ElPack Megademo compilability in B2007 fixed&amp;lt;br&amp;gt;[*] ElEdits: Call to AdjustHeight added in TCustomElEdit.CMCtl3DChanged&amp;lt;br&amp;gt;[-] ElEdits: OnChange doesn't called after pasting text from clipboard&amp;lt;br&amp;gt;[-] BTS#721 (ElMemo blink when typing) fixed&amp;lt;br&amp;gt;[-] LMDApplication.ThemeUseColorProperty handling in ElEdits was broken - fixed&amp;lt;br&amp;gt;[+] TWinControl descendants: DoubleBuffered property made published&amp;lt;br&amp;gt;[+] ElAdvPanel: ChangeScale method overridden for better scaling&amp;lt;br&amp;gt;[*] ElVclUtils: CopyTextToClipboard renamed to LMDCopyTextToClipboard and moved to LMDUtils&amp;lt;br&amp;gt;[-] ElPromptDlg: Ctrl+C did not work in ElPromptDialog - fixed &amp;lt;br&amp;gt;[+] ElPromptDlg: Caption, separators and button captions added to text copied to ClipBoard from ElPromptDialog&amp;lt;br&amp;gt;[+] ElXtree: MakeColVisible method added&amp;lt;br&amp;gt;[+] ElXTree: GetNextChecked and GetCheckedCount methods added&amp;lt;br&amp;gt;[-] ElListBox: BTS#727 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.0 (25-Aug-2009) ====&lt;br /&gt;
&lt;br /&gt;
Initial Release.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_ElPack&amp;diff=3846</id>
		<title>LMD 2010 - History LMD ElPack</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2010_-_History_LMD_ElPack&amp;diff=3846"/>
				<updated>2017-08-18T12:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD ElPack 8.0 releases.&amp;lt;br&amp;gt;First official release: '''25-Aug-2009'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; &lt;br /&gt;
[*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
&lt;br /&gt;
==== Release 8.17 (26-October-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElSBHook: issues related to application freeze when running several instances of application with ElPack components - fixed&amp;lt;br&amp;gt;[-] ElBiProgr, TELBiProgressBar: division by 0 error in non-themed mode fixed&amp;lt;br&amp;gt;[-] ElPgCtl, TElPageControl: handling WM_MouseWheel message in children controls fixed&amp;lt;br&amp;gt;[+] ElCaption: DownImages and DisabledImages image lists added&amp;lt;br&amp;gt;[+]&amp;amp;nbsp;Const LMDDisableOleinit&amp;amp;nbsp;added, {$IFDEF LMDDISABLE_OLEINIT} removed&amp;lt;br&amp;gt;[-] ElCombos: AdjustRegion fixed&amp;lt;br&amp;gt;[-] ElCombos: incorrect text color when control is focused and text is not empty (classic mode in Vista and upper) - fixed&amp;lt;br&amp;gt;[-] ElCombos: incorrect arrow drawing in Vista/Windows7 classic mode fixed&amp;lt;br&amp;gt;[-] ElEdits: text color for disabled edit control in classic mode fixed&amp;lt;br&amp;gt;[-] TElHeader: incorrect position after dragging fixed&amp;lt;br&amp;gt;[-] ElIni, TElIniFile: UTF8 writing/reading fixed&amp;lt;br&amp;gt;[-] TElPageControl: incorrect tabs drawing fixed&amp;lt;br&amp;gt;[-] TElPanel: setting Enabled property to true had no effect in runtime if set to false in design time&amp;lt;br&amp;gt;[-] ElTree: unclickable area issue in Win7 fixed&amp;lt;br&amp;gt;[-] TElTree/TElXTree: Application.Hint setting fixed&amp;lt;br&amp;gt;[-] LMDGlyphs: incorrect glyph drawing in classic mode (Vista and higher) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.16 (13-September-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElXtree, ElTree: GetFullExpand optimized (newsgroup suggestion)&amp;lt;br&amp;gt;[-] ElCombos: combobox region was not updated on resize - fixed (newsgroup rep &amp;quot;ElComboBox size&amp;quot; 10/09/2010)&amp;lt;br&amp;gt;[-] ElCombos: combobutton's arrow disappeared when changing to classic mode/ThemeGlobalMode=ttmNone - fixed&amp;lt;br&amp;gt;[-] ElBiProgr, ElPopBtn: ThemeGlobalMode property added to published clause&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Silent Update 31-August-2010'''&amp;lt;br&amp;gt;[+] Delphi / C++Builder XE installer&amp;lt;br&amp;gt;'''Silent Update 24-August-2010'''&amp;lt;br&amp;gt;[-] ElCaption: ImageList support issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.15 (16-August-2010)&amp;amp;nbsp; ====&lt;br /&gt;
[-] Fixed ElCaption captions drawing for themed windows&amp;lt;br&amp;gt;[+] TElGraphicButton. HotBackground now is published property&amp;lt;br&amp;gt;[*] TElDateTimePicker. OnChange event now fires only when all 4 digits of year are inputed.&amp;lt;br&amp;gt;[+] TElCaption. Added ImageList support for TElCaptionButtons&amp;lt;br&amp;gt;[+]&amp;amp;nbsp;&amp;amp;nbsp;ElCaption, ElPopBtn, ElToolBar, LMDGlyphs: GlyphMaskUsage&amp;amp;nbsp;property&amp;amp;nbsp;introduced for &amp;quot;fine tuning&amp;quot; of glyphs in ElCaption, ElPopBtn, ElToolBar&lt;br /&gt;
&lt;br /&gt;
==== Release 8.14 (26-July-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[+] LMDGlyphs: aMaskUsage parameter added in AddMasked method (possible values: force unmasked, force masked, use as defined in Masked property of the glyph list)&amp;lt;br&amp;gt;[-] LMDGlyphs: incorrect painting of transparent icon on button with ThemeMode = ttmNone - fixed&amp;lt;br&amp;gt;[-] ElPopBtn: icon was scaled wrong when UseArrow = true and ThemeMode = ttmNone - fixed&amp;lt;br&amp;gt;[-] ElHeader: bug in section deleting - fixed&amp;lt;br&amp;gt;[-] ElGroupBox, TElGroupBox: several AutoDisableChildren issues fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.13 (26-June-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] TElComboBox. Fixed border under Vista+&amp;lt;br&amp;gt;[-] TElCurrEdit. Fixed Disabled backaground.&amp;lt;br&amp;gt;[-] TElIniFile. Fixed garbage symbols saving&amp;lt;br&amp;gt;[+] TElPopupButton. Added property ResizableButtonImage to control stretching button icon.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.12 (14-June-2010)&amp;amp;nbsp; ====&lt;br /&gt;
[-] StyleManager Editor: IDE crashed when opening style editor if there is an instance of ElXTree on the form - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElStyleMan, StyleManager Editor: &amp;quot;Failed to find root item&amp;quot; issue fixed (style editor did not open in Delphi 2009 and higher because of encoding)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElPopBtn: GetArrowSize simplified; incorrect arrow size fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] [http://bts.lmd.de/mantis/view.php?id=771 BTS #771] fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.11 (19-May-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[-] ElXTree: black background flicker when Parent.DoubleBuffered = true removed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElTreeGrids: compiler hints removed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElCombos: GPF fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElPopBtn: disabled text drawing fixed for TElToolbarButton&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.10.02 (06-May-2010)&amp;amp;nbsp; ====&lt;br /&gt;
&lt;br /&gt;
[+] Added Greece ancent symbols &amp;lt;br&amp;gt;[*] ElBtnEdit: Fixed #769 Issue&amp;lt;br&amp;gt;[+] TElPanel and successors now set enable = false for all contained controls&amp;lt;br&amp;gt;[+] TElCurrEdit correctly accept numbers pasting from clipboard&amp;lt;br&amp;gt;[+] TElTrayIcon now supports balloon showing&amp;lt;br&amp;gt;[+] ElTray. Support for modern Windows versions such as Windows Vista, 7&amp;lt;br&amp;gt;[*] Fixed #770 issue&amp;lt;br&amp;gt;[*] ElXHeader:Fixed bug described in &amp;quot;Deleting columns in TElXTree header editor&amp;quot; and other TElXTreeEditor&amp;lt;br&amp;gt;[-] ElCurrEdit: BTS #765 fixed &amp;amp;nbsp;&amp;lt;br&amp;gt;[-] ElCombos: one-pixel gaps removed in combobox corners&amp;lt;br&amp;gt;[-] ElXHeader: Fixed BTS #766 bug&amp;lt;br&amp;gt;[-] ElMenus: Improved RighttoLeft drawing (rep. by Graham Powell)&amp;lt;br&amp;gt;[-] ElEdits: Fixed &amp;quot;Problem with custom scrollbars&amp;quot; (newsgroup)&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;br&amp;gt;Release 8.09 (26-Mar-2010) ====&lt;br /&gt;
&lt;br /&gt;
[+] ElEdits, ElInputProcessor: TElDeadChar now supports WideChar, TElEdit now has DeadCharList public&amp;lt;br&amp;gt;[*] ElIni: Now D2010 and D2009 config is saved in utf8&amp;lt;br&amp;gt;[-] ElDTPick, ElXHeader: BTS #762 issue fized; but LockHeight doesn't work correctly yet&amp;lt;br&amp;gt;[-] ElMenus: BTS#764, #754 issues fixed&amp;lt;br&amp;gt;[-] ElMenus: fixed disabled color in ElMainMenu when form is MDIForm&amp;lt;br&amp;gt;[-] ElPanel: transparency issue for themed mode in ElGroupBox fixed [related issue BTS#758]&amp;lt;br&amp;gt;[-] ElPopUpBtn: glyph position for UseArrow=true fixed&amp;lt;br&amp;gt;[-] ElTreeStdEditors: OnExit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.08 (28-Feb-2010) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElBtnEdit, ElCombos, ElEdits: some issues of themed rendering in Vista/Windows7 fixed (dropdown button invisible issue - &amp;quot;TElComboBox, button size..&amp;quot; post in newsgroup, dropdown button in ElPopupBtn - &amp;quot;TElPopupButton UseArrow draws arrow too thin&amp;quot; post in newsgroup)&amp;lt;br&amp;gt;[-] BTS #758 runtime issue fixed&amp;lt;br&amp;gt;[+] InvertMinButton in TElExplorerBar now works in theme mode.&amp;lt;br&amp;gt;[*] Improved editing in TElSpinEdit&amp;lt;br&amp;gt;[-] Fixed incorrect Alignment when TElTree.ShowChecboxes and TElTree.SowEmptyImages is true&amp;lt;br&amp;gt;[-] Fixed error when TElTreeInplaceDTPickEditor loose focus&amp;lt;br&amp;gt;[-] Fixed 'Invalid Section' exception&amp;lt;br&amp;gt;[-] Fixed tree Header drawing for HTML sections&amp;lt;br&amp;gt;[-] Fixed TElXHeader move sections with merged cells&amp;lt;br&amp;gt;[-] Fixed min value ignoring in TElSpinEdit TElFloatSpinEdit&amp;lt;br&amp;gt;[-] Fixed merging menus showed for non MDI forms&amp;lt;br&amp;gt;[-] Fixed invalid caption height calculation in TElExplorerBar&amp;lt;br&amp;gt;[-] Fixed &amp;quot;Duplicated Call of OnAfterSelectionChange-Event of TElTreeStringGrid when clicking other row&amp;quot;&amp;lt;br&amp;gt;[-] Fixed &amp;quot;TElListBox and press &amp;amp;lt;Space&amp;amp;gt; or &amp;amp;lt;Enter&amp;amp;gt; (or other key) causes Listbox to select first entry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.07 (28-Jan-2010) ====&lt;br /&gt;
&lt;br /&gt;
[+] TElXTree: New property was added - IncrementalSearchSelectItem. It allows to control selected state of found item&amp;lt;br&amp;gt;[+] TElXTree: Added SortSections property to public section&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Added OnHTMLImageNeededEx event for TElHeader and TElXHeader components. (PNG Support for ElHeader)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElSpeedButton. Added TCustomeImageList support as source of state pictures&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElXTree: CustomPlusMinus property overrides theme settings now (so that custom plus-minus icons could be used in themed mode)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree. Fixed Moving and deleting HeaderSections and sync with item cells&lt;br /&gt;
[-] TElHeader: Sort mark was not drawn in themed mode, fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed BTS #751. Please be notified that this fix require Delphi 2009 Update 3/4 installed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed Flat drawing for themed TElPageControl when tabs on bottom or on Right&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed &amp;quot;No Scrolling possible per Scroll-Buttons if too many bigger cols are in a TElTreeStringGrid (ElPack 6-8)&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed ElMenuBar MDI buttons hook when TElMenuBar isn't directly on form. Added OnAfterPasteClipboardText event&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed black background for ElMainMenus disabled items&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed TElPageControl etsNetTab tabs drawing issue&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Move TriggerSortEnd after IsUpdating&amp;amp;nbsp;:= false; in OnHeaderSectionClick method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Help file installer (updated)'''&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Improvements for Delphi/C++ Builder 2010 Help integration&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Win32 Help installer include again Delphi/C++ Builder 6 Helpfile integration options&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.06 (16-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
This is mainly a release to work around a problem introduced with recent Delphi 2010 Updates in the shared runtime. The following line:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite = procedure(Sender&amp;amp;nbsp;: TObject; var Target&amp;amp;nbsp;: Text) of object;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
causes now a TI894 internal error. This method signature is used OnHeaderWrite events in TLMDApplication class and TLMDApplicationCtrl control. For Delphi 2010 and above this line is now changed to:&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TLMDOnHeaderWrite=procedure(Sender&amp;amp;nbsp;: TObject;const Target: TStringList) of object;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This is a breaking change. If you used this event you need to change your code slightly (add your header lines now to Stringlist instead writing to a TEXT variable.&amp;lt;br&amp;gt; Please also note that this problem appeared for source code user in Delphi/C++ Builder with Update 2 or higher only. If you are not affected by this problem there is no need to update to .06 release.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Memory leak in LMDVistaDialog.pas was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Added OldFilter property for TLMDCustomFileDialog.FileTypes, you now be able to set old filters like this Text files (*.txt)|*.TXT&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Added default option to enable sizing in dealogs in OSes previous than Vista&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDPngObject - fixed drawing on Vista glass&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.05 (14-Dec-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElFolderDlg: Behaviour on Windows 9x platforms with LMD_UNICODE switch enabled fixed&amp;lt;br&amp;gt;[*] ElEdits, ElIni: minor refactoring&amp;lt;br&amp;gt;[+] ElFontCombo: option for hiding @-prefixed fonts added&amp;lt;br&amp;gt;[-] ElShadowWindow: Fixed &amp;quot;Control ''has no parent window&amp;quot; exception in Windows 2000&amp;lt;br&amp;gt;''[-] BTS #754 fixed (TElXTree: Incorrect calculation of text alignment in columns)&amp;lt;br&amp;gt;[-] ElHeader, ElHeaderX: last empty section rendering fixed for ThemeMode=ttmNative&amp;lt;br&amp;gt;[-]&amp;amp;nbsp;BTS#758 fixed (Disappearing controls when adding&amp;amp;nbsp;ElPopBtn on the ElPanel in IDE)&amp;lt;br&amp;gt;[-] ElXTree: gutter rendering improved&amp;lt;br&amp;gt;[-] ElSBCtrl: minor refactoring (IsInRect -&amp;amp;gt; LMDPointInRect -&amp;amp;gt; LMDProcs)&amp;lt;br&amp;gt;[-] ElToolBar: ThemeMode was reset to ttmPlatform while loading from dfm if control is themed - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.04 (23-Nov-2009) ====&lt;br /&gt;
&lt;br /&gt;
[+] ElCombos: ForceItemHeight property added to TElComboBox&amp;lt;br&amp;gt;[+] ElCombos: SaveUnicode property added in TElComboBox &amp;lt;br&amp;gt;[-] ElDTPick.pas: Fixed AutoAdvance (Entering first digit in the year field moved cursor to hour field) &amp;lt;br&amp;gt;[-] ElPgCtl.pas: TabStop set to true by default&amp;lt;br&amp;gt;[-] ElXHeader: LockHeight was ignored - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[-] ElSpinEdit: Spin button rendering bug (extra pixels when ButtonWidth = 0) fixed&amp;lt;br&amp;gt;[-] ElIni: Fixed saving unicode ini files (added BOM marker). This change affects also ElStyleManager issue (*.els files written from D2009 could not be read)&amp;lt;br&amp;gt;[-] ElBtnEdit: AdjustBoundsRect fixed&amp;lt;br&amp;gt;[-] ElBtnEdit: ElComboBox dropdown button and ElButtonEdit main buttons were not visible - fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.03 (15-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElTreeGrids: ChangeScale modified&amp;lt;br&amp;gt;[-] ElSpin: spin buttons sizes corrected&amp;lt;br&amp;gt;[-] ElBtnEdit: setting theme mode to ttmNative has no effect on AltButton - fixed&amp;lt;br&amp;gt;[-] ElRTTIInspector: BTS #745 issue fixed&amp;lt;br&amp;gt;[-] ElXTree: Fixed BTS #737, #738 issues&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.02 (02-Oct-2009) ====&lt;br /&gt;
&lt;br /&gt;
[+] TElPopupMenu: IsPopuped property added&amp;lt;br&amp;gt;[+] ElWideDBMemo: Support of ftWideMemo field type &amp;lt;br&amp;gt;[+] ElXTree: PlusPosition property, which allows control of vertical position of plus/minus button&amp;lt;br&amp;gt;[-] ELMenuBar: BTS #740 &amp;lt;br&amp;gt;[-] ElStyleManager editor did not start - fixed&amp;lt;br&amp;gt;[-] ElXTree: mouse selection color fixed&amp;lt;br&amp;gt;[-] ElXTree: Draw order when HighAlphaLevel &amp;amp;lt; 255 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.01 (08-Sep-2009) ====&lt;br /&gt;
&lt;br /&gt;
[-] ElComboBox rendering with Style = csDropDownList in Vista was broken - fixed&amp;lt;br&amp;gt;[-] BTS#716: Properties AltButtonPngGlyph, AltButtonUsePng added for a number of controls&amp;lt;br&amp;gt;[-] ElPack Megademo compilability in B2007 fixed&amp;lt;br&amp;gt;[*] ElEdits: Call to AdjustHeight added in TCustomElEdit.CMCtl3DChanged&amp;lt;br&amp;gt;[-] ElEdits: OnChange doesn't called after pasting text from clipboard&amp;lt;br&amp;gt;[-] BTS#721 (ElMemo blink when typing) fixed&amp;lt;br&amp;gt;[-] LMDApplication.ThemeUseColorProperty handling in ElEdits was broken - fixed&amp;lt;br&amp;gt;[+] TWinControl descendants: DoubleBuffered property made published&amp;lt;br&amp;gt;[+] ElAdvPanel: ChangeScale method overridden for better scaling&amp;lt;br&amp;gt;[*] ElVclUtils: CopyTextToClipboard renamed to LMDCopyTextToClipboard and moved to LMDUtils&amp;lt;br&amp;gt;[-] ElPromptDlg: Ctrl+C did not work in ElPromptDialog - fixed &amp;lt;br&amp;gt;[+] ElPromptDlg: Caption, separators and button captions added to text copied to ClipBoard from ElPromptDialog&amp;lt;br&amp;gt;[+] ElXtree: MakeColVisible method added&amp;lt;br&amp;gt;[+] ElXTree: GetNextChecked and GetCheckedCount methods added&amp;lt;br&amp;gt;[-] ElListBox: BTS#727 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 8.0 (25-Aug-2009) ====&lt;br /&gt;
&lt;br /&gt;
Initial Release.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMDXML_Tutorial&amp;diff=3845</id>
		<title>LMDXML Tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMDXML_Tutorial&amp;diff=3845"/>
				<updated>2017-08-18T12:35:02Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Getting started}}&lt;br /&gt;
&lt;br /&gt;
== Example 1. Creating and saving document ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 var&lt;br /&gt;
   aDoc: ILMDXmlDocument;&lt;br /&gt;
   anElem: ILMDXmlElement;&lt;br /&gt;
 begin&lt;br /&gt;
   // Create empty XML document with root element 'base'&lt;br /&gt;
   aDoc := LMDCreateXmlDocument('base');&lt;br /&gt;
&lt;br /&gt;
   // Create 'elem1' element and add it as child node for root element&lt;br /&gt;
   anElem := aDoc.DocumentElement.AppendElement('elem1');&lt;br /&gt;
&lt;br /&gt;
   // Add 'a1' and 'a2' attributes to 'elem1'&lt;br /&gt;
   anElem.SetAttr('a1', 'elem1 a1');&lt;br /&gt;
   anElem.SetAttr('a2', 'elem1 a2');&lt;br /&gt;
&lt;br /&gt;
   // Add another element 'elem2'&lt;br /&gt;
   anElem := aDoc.DocumentElement.AppendElement('elem');&lt;br /&gt;
   anElem.SetAttr('a1', 'elem2 a1');&lt;br /&gt;
   anElem.SetAttr('a2', 'elem2 a2');&lt;br /&gt;
&lt;br /&gt;
   // Save document to file&lt;br /&gt;
   aDoc.Save('Test.xml');&lt;br /&gt;
 end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is content of saved file:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;base&amp;gt;&lt;br /&gt;
   &amp;lt;elem1 a1=&amp;quot;elem1 a1&amp;quot; a2=&amp;quot;elem1 a2&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;elem2 a1=&amp;quot;elem2 a1&amp;quot; a2=&amp;quot;elem2 a2&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/base&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example 2. Reading and analyzing documents ==&lt;br /&gt;
&lt;br /&gt;
External xml file to parse. Test.xml &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;window-1251&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;root&amp;gt;&lt;br /&gt;
   &amp;lt;elem1 a1=&amp;quot;v1&amp;quot; a2=&amp;quot;v2&amp;quot;&amp;gt; 1&amp;lt;/elem1&amp;gt;&lt;br /&gt;
   &amp;lt;!--  --&amp;gt;&lt;br /&gt;
   &amp;lt;elem2 a1=&amp;quot;v1&amp;quot; a2=&amp;quot;v2&amp;quot;&amp;gt; 2&amp;lt;/elem2&amp;gt;&lt;br /&gt;
 &amp;lt;/root&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Delphi code &amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 var&lt;br /&gt;
   aDoc: ILMDXmlDocument;&lt;br /&gt;
   anElem2: ILMDXmlNode;&lt;br /&gt;
 begin&lt;br /&gt;
   // Create empty XML document &lt;br /&gt;
   aDoc := LMDCreateXmlDocument;&lt;br /&gt;
&lt;br /&gt;
   // Read content from file&lt;br /&gt;
   aDoc.Load('Test.xml');&lt;br /&gt;
&lt;br /&gt;
   // Show in Memo1 full text of xml that we read above&lt;br /&gt;
   Memo1.Lines.Text := aDoc.Xml;&lt;br /&gt;
&lt;br /&gt;
   Memo1.Lines.Add('------------------------');&lt;br /&gt;
&lt;br /&gt;
   // Search element with tag 'elem2'&lt;br /&gt;
   anElem2 := aDoc.DocumentElement.SelectSingleNode('elem2');&lt;br /&gt;
&lt;br /&gt;
   // Show in Memo1 XML-text anElem2&lt;br /&gt;
   Memo1.Lines.Add(anElem2.Xml);&lt;br /&gt;
&lt;br /&gt;
   Memo1.Lines.Add('------------------------');&lt;br /&gt;
&lt;br /&gt;
   // Show in Memo1 value of 'a2' attribute from anElem2 element&lt;br /&gt;
   Memo1.Lines.Add(anElem2.GetAttr('a2'));&lt;br /&gt;
 end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example 3. It shows how to save structures to xml ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
    TSex =(sxMale, sxFemale);&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
    TAuthor = record&lt;br /&gt;
        FirstName: string;&lt;br /&gt;
        LastName: string;&lt;br /&gt;
        Sex: TSex;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
    TBook = record&lt;br /&gt;
        ISBN: string;&lt;br /&gt;
        Title: string;&lt;br /&gt;
        Authors: array of TAuthor;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  LLibrary: array of TBook;&lt;br /&gt;
&lt;br /&gt;
procedure WriteAuthor(AParent: ILMDXmlNode; AAuthor: TAuthor);&lt;br /&gt;
begin&lt;br /&gt;
  with AParent.AppendElement('author') do&lt;br /&gt;
  begin&lt;br /&gt;
    with AppendElement('firstname') do&lt;br /&gt;
      AppendText(AAuthor.FirstName);&lt;br /&gt;
    with AppendElement('lastname') do&lt;br /&gt;
      AppendText(AAuthor.LastName);&lt;br /&gt;
    SetAttr('sex', GetEnumName(TypeInfo(TSex), ord(AAuthor.Sex)));&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure WriteBook(AParent: ILMDXmlNode; ABook: TBook);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
  LAuthors: ILMDXmlElement;&lt;br /&gt;
begin&lt;br /&gt;
  with AParent.AppendElement('book') do&lt;br /&gt;
  begin&lt;br /&gt;
    with AppendElement('isbn') do&lt;br /&gt;
      AppendText(ABook.ISBN);&lt;br /&gt;
    with AppendElement('title') do&lt;br /&gt;
      AppendText(ABook.Title);&lt;br /&gt;
    LAuthors := AppendElement('authors');&lt;br /&gt;
    for i := Low(ABook.Authors) to High(ABook.Authors) do&lt;br /&gt;
      WriteAuthor(LAuthors, ABook.Authors[i]);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm9.Button1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  LXMLLib: ILMDXmlDocument;&lt;br /&gt;
  i: Integer;&lt;br /&gt;
begin&lt;br /&gt;
  SetLength(LLibrary, 3);&lt;br /&gt;
  LLibrary[0].ISBN := 'ISBN-10: 0586010807';&lt;br /&gt;
  LLibrary[0].Title := 'Foundation';&lt;br /&gt;
  SetLength(LLibrary[0].Authors, 1);&lt;br /&gt;
  LLibrary[0].Authors[0].FirstName := 'Isaac';&lt;br /&gt;
  LLibrary[0].Authors[0].LastName := 'Asimov';&lt;br /&gt;
  LLibrary[0].Authors[0].Sex := sxMale;&lt;br /&gt;
&lt;br /&gt;
  LLibrary[1].ISBN := 'ISBN-10: 0553293370';&lt;br /&gt;
  LLibrary[1].Title := 'Foundation and Empire';&lt;br /&gt;
  SetLength(LLibrary[1].Authors, 1);&lt;br /&gt;
  LLibrary[1].Authors[0].FirstName := 'Isaac';&lt;br /&gt;
  LLibrary[1].Authors[0].LastName := 'Asimov';&lt;br /&gt;
  LLibrary[1].Authors[0].Sex := sxMale;&lt;br /&gt;
&lt;br /&gt;
  LLibrary[2].ISBN := 'ISBN-10: 0543903508';&lt;br /&gt;
  LLibrary[2].Title := 'A Connecticut Yankee in King Arthur''s Court';&lt;br /&gt;
  SetLength(LLibrary[2].Authors, 1);&lt;br /&gt;
  LLibrary[2].Authors[0].FirstName := 'Mark';&lt;br /&gt;
  LLibrary[2].Authors[0].LastName := 'Twain';&lt;br /&gt;
  LLibrary[2].Authors[0].Sex := sxMale;&lt;br /&gt;
&lt;br /&gt;
  LXMLLib := LMDCreateXmlDocument('library');&lt;br /&gt;
  for i := Low(LLibrary) to High(LLibrary) do&lt;br /&gt;
    WriteBook(LXMLLib.DocumentElement, LLibrary[i]);&lt;br /&gt;
  LXMLLib.Save('library.xml');&lt;br /&gt;
end; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example 4. How to read XML with unknown structure an fill TTreeView with it ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure XMLToTreeView(const AFileName, AOptElement, AOptAttr: String; ATreeView: TTreeView);&lt;br /&gt;
var&lt;br /&gt;
  LXMLDoc: ILMDXmlDocument;&lt;br /&gt;
&lt;br /&gt;
  procedure FillTree(ARootElement: ILMDXmlNode; AParent: TTreeNode);&lt;br /&gt;
  var&lt;br /&gt;
    i: Integer;&lt;br /&gt;
    LCurrentNode: TTreeNode;&lt;br /&gt;
    LNode: ILMDXmlNode;&lt;br /&gt;
  begin&lt;br /&gt;
    for i := 0 to ARootElement.ChildNodes.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      if (ARootElement.ChildNodes.Item[i].NodeType = LMD_NODE_ELEMENT) then&lt;br /&gt;
      begin&lt;br /&gt;
        LCurrentNode := ATreeView.Items.AddChild(AParent, ARootElement.ChildNodes[i].NodeName + ': ' + &lt;br /&gt;
                                                 ARootElement.ChildNodes[i].Text);&lt;br /&gt;
        LNode := ARootElement.ChildNodes[i].SelectSingleNode(AOptElement);&lt;br /&gt;
        if Assigned(LNode) then&lt;br /&gt;
          LCurrentNode.Text := Format('Has child element %s, ', [AOptElement]) + LCurrentNode.Text;&lt;br /&gt;
        if ARootElement.ChildNodes[i].AttrExists(AOptAttr) then&lt;br /&gt;
        begin&lt;br /&gt;
          LCurrentNode.Text := Format('Has the &amp;quot;%s&amp;quot; attribute, ', [AOptAttr]) + LCurrentNode.Text;&lt;br /&gt;
        end;&lt;br /&gt;
        FillTree(ARootElement.ChildNodes[i], LCurrentNode);&lt;br /&gt;
      end;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  LXMLDoc := LMDCreateXmlDocument();&lt;br /&gt;
  LXMLDoc.Load(AFileName);&lt;br /&gt;
  FillTree(LXMLDoc.DocumentElement, nil);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_LogTools_tutorial&amp;diff=3844</id>
		<title>LMD LogTools tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_LogTools_tutorial&amp;diff=3844"/>
				<updated>2017-08-18T12:32:47Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= LogTools package =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Any programmer who is capable of writing complex applications is aware of the fact that some parts of code cannot be debugged with an interactive debugger (e.g. system service, threaded code, painting routines etc) or that situations exist, where an interactive debugger is unavailable. Common solution for for such cases is information logging. There many ways of logging - to files, to terminal, to system dialog boxes etc. To make life more simple we implemented a powerful logging system, that allows a developer to concentrate on main application logic instead of writing and debugging his own routines.&lt;br /&gt;
&lt;br /&gt;
== Class Structure ==&lt;br /&gt;
AnyLogger offer a flexible and extensible set of classes to log useful information. There are four main items: '''Message''', '''Session''', '''Transport''' and '''Manager'''. '''Message''' is container for information that should be logged. '''Session''' is class that wrap different information into Message and send it over '''Transport layer'''. '''Transport layer''' is responsible for physical delivery of Message. And at last but not least - the '''Manager''' allows user to create root (default) and user sessions, load/save user sessions and transport parameters. Secondary points are Router and Server (message Collector).&amp;lt;br&amp;gt;&lt;br /&gt;
See also the following class diagram:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:LogTools.png]]&lt;br /&gt;
&lt;br /&gt;
== First Example ==&lt;br /&gt;
In this section we will write traditional in programmer's community example - 'Hello, World!' sample program. Firstly, we create new Delphi Console Application (File-&amp;gt;New-&amp;gt;Other...-&amp;gt;Delphi Projects-&amp;gt;Console Application). Then replace content of new project by below code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
program HelloAnyLoggerWorld;&lt;br /&gt;
&lt;br /&gt;
{$APPTYPE CONSOLE}&lt;br /&gt;
 &lt;br /&gt;
uses&lt;br /&gt;
  SysUtils,&lt;br /&gt;
  LMDLogMessage;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    LMDLog.SendString(‘First message’, ‘Hello, World!’); &lt;br /&gt;
  except&lt;br /&gt;
    on E:Exception do&lt;br /&gt;
      LMDLog.SendException(E);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, we need to run AnyLogger console.After that compile and run HelloAnyLoggerWorld project. If everything is installed correctly you should see in AnyLogger console 'First message'='Hello, World!' line.&lt;br /&gt;
&lt;br /&gt;
Now, let's take a closer look at what we did. First of all - we added LMDLogMessage unit in uses list. This unit contains declaration of all base needed types, classes and global variable LMDLog that contains object reference for root session (see. Sessions chapter). Secondly, we uses LMDLog global variable to call method of session - SendString which sends string using session transport (by default transport is WM_COPYDATA message which handled by AnyLogger console)&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
Main purpose of this tool package is logging and monitoring actions of application. It should be used when you can't run regular debugger or when it useless - multi-thread application, system services, applications on client site etc.&lt;br /&gt;
&lt;br /&gt;
To start use LogTools in your application you should add LMDLogMessage.pas unit to uses section of your unit, then you'll be able to use LMDLog instance of TLMDLogSession class.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  LMDLog.SendString('Test', 'Hello, World!');&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDLogSession class has methods to send some info into main log - TLMDLogSession.Send*, to watch data in Watch area - TLMDLogSession.Watch* (main different with Send* function that Watch* has just changed value of watched variables, but not add new record)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  while i &amp;lt; 200 do&lt;br /&gt;
    LMDLog.WatchInteger('i', i);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To logging flow of application, below methods available: TLMDLogSession.Enter*, TLMDLogSession.Leave*. Sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
function TestFunction: HResult;&lt;br /&gt;
begin&lt;br /&gt;
  LMDLog.EnterMethod('TestFunction');&lt;br /&gt;
  try&lt;br /&gt;
    ...&lt;br /&gt;
  finally&lt;br /&gt;
    LMDLog.SendHResult('Result', Result);&lt;br /&gt;
    LMDLog.LeaveMethod('TestFunction');&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and methods that help to trace of application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  for i := 0 to Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    LMDLog.SendInteger('Iteration', i);&lt;br /&gt;
    b := 20 + i;&lt;br /&gt;
    LMDLog.TouchCounter('Checkpoint');&lt;br /&gt;
    a := CalcA(b);&lt;br /&gt;
    LMDLog.TouchCounter('Checkpoint');&lt;br /&gt;
    c := a div 34;&lt;br /&gt;
    LMDLog.ReleaseCounter('Checkpoint');&lt;br /&gt;
  end;&lt;br /&gt;
... &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To control log storage TLMDLogSession has next methods - TLMDLogSession.ClearLog, TLMDLogSession.ClearWatch and TLMDLogSession.ClearCallStack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; TLMDLogSession allow you to control level of you logging messages. It has two properties for it - TLMDLogSession.AllowLogLevel - set minimum log level for messages, TLMDLogSession.DefaultLogLevel - set default log level for messages where level is not set as parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  {$ifdef DEBUG}&lt;br /&gt;
  LMDLog.AllowLogLevel := LogAll;&lt;br /&gt;
  LMDLog.AllowLogLevel := LogAll;&lt;br /&gt;
  {$ELSE}&lt;br /&gt;
  LMDLog.AllowLogLevel := LogFatal; &lt;br /&gt;
  LMDLog.DefaultLogLevel := LogOff;&lt;br /&gt;
  {$ENDIF}&lt;br /&gt;
  &lt;br /&gt;
  for i := 0 to 4 do&lt;br /&gt;
  begin&lt;br /&gt;
    try &lt;br /&gt;
      LMDLog.SendInteger('i', i);&lt;br /&gt;
      a := 5 / i;&lt;br /&gt;
      LMDLog.SendReal('a', a);&lt;br /&gt;
    except&lt;br /&gt;
      on E: EDivideByZero do&lt;br /&gt;
        LMDLog.SendString(LogFatal, 'Error', 'Divide by zero');&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; Logging for 'a' and 'i' will be turned off when DEBUG undefined, but 'Error' will be sent to log in any case.&lt;br /&gt;
&lt;br /&gt;
== Creating custom sessions ==&lt;br /&gt;
&lt;br /&gt;
Custom sessions can be creating by using LMDLogManager.AddSession() method. Via it   custom transport, name etc. can be specified. example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLog := LMDLogManage.AddSession('SessionName|lmd_db_session|lmd_wmcopydata_log|WindowClass=TLMDLogHelperWindow;WindowName=LMDLogHelper');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can use it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  MyLog.SendString('name', 'value');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  LMDLogManager.Sessions['SessionName'].SendString('name', 'value');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aboyut this string - 'SessionName|lmd_db_session|lmd_wmcopydata_log|WindowClass=TLMDLogHelperWindow;WindowName=LMDLogHelper'&lt;br /&gt;
&lt;br /&gt;
* '''SessionName''' - it's exactly what is it - session name. You can name it as you wish. Except &amp;quot;Root&amp;quot; - this name is reserved for session which stored in LMDLog&lt;br /&gt;
&lt;br /&gt;
* '''lmd_db_session''' - type of session that you want to create. Currently library contains two session classes - TLMDLogSession (lmd_db_session) and TLMDLogDBSession (lmd_db_session). 'lmd_db_session' and 'lmd_db_session' are specified in GetName method of session. If you will extend TLMDLogCustomSession to logging you custom data then you have to override this method and specify you own unique name&lt;br /&gt;
&lt;br /&gt;
* '''lmd_wmcopydata_log''' - type of transport that you want to create. each new transport have to override GetName method of TLMDLogCustomTransport and return it's own unique name.&lt;br /&gt;
&lt;br /&gt;
* '''WindowClass=TLMDLogHelperWindow''' and '''WindowName=LMDLogHelper''' - are transport parameters - can be different for different transports.&lt;br /&gt;
&lt;br /&gt;
= AnyLogger console application&amp;lt;br&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
This logging and monitoring console for LMD Log package. All data that you send from your application are collected and displayed here.&lt;br /&gt;
&lt;br /&gt;
[[Image:LMD Logger Console.png|Image:LMD_Logger_Console.png]]&lt;br /&gt;
&lt;br /&gt;
== Creating Viewer plugin for AnyLogger console&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''NB. This API information can be changed before AnyLogger release'''&lt;br /&gt;
&lt;br /&gt;
AnyLogger console can be extended&amp;amp;nbsp; by pluggable modules (plugins). Plugins based on new package [[LMD Plugins]]. Currently you can create plugin to view custom data, that you sent to console, in more obvious form. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create such plugin you will need LMD Plugins package and uCreatePlugin.pas unit.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit uCreatePlugin;&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils, Forms, LMDPluginManager, LMDPluginImpl;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  TLMDActionExecutor = class(TObject)&lt;br /&gt;
  public&lt;br /&gt;
    procedure GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetType(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetName(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
function CreatePlugin(AExecuter: TLMDActionExecutor; AFormClass: TFormClass): ILMDPlugin;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
function CreatePlugin(AExecuter: TLMDActionExecutor; AFormClass: TFormClass): ILMDPlugin;&lt;br /&gt;
var&lt;br /&gt;
  Plugin: TLMDPlugin;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    // Create the plugin&lt;br /&gt;
    Plugin := TLMDPlugin.Create('Author', 'AnyLogger plugin', 0, 1);&lt;br /&gt;
&lt;br /&gt;
    // add GetSupportedSubTypesCount action&lt;br /&gt;
    Plugin.AddAction('GetSubTypesCount').OnPerformAction := AExecuter.GetCount;&lt;br /&gt;
    with Plugin.AddAction('GetSubTypeName') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('SubType') do&lt;br /&gt;
        ParameterType := ptGUID;&lt;br /&gt;
      OnPerformAction := AExecuter.GetName;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    with Plugin.AddAction('GetSubType') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('Index') do&lt;br /&gt;
        ParameterType := ptInteger;&lt;br /&gt;
      OnPerformAction := AExecuter.GetType;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    with Plugin.AddAction('GetSubTypeIconIndex') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('SubType') do&lt;br /&gt;
        ParameterType := ptGUID;&lt;br /&gt;
      OnPerformAction := AExecuter.GetIcon;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    // add form into plugin&lt;br /&gt;
    Plugin.AddForm(TLMDDelphiPluginForm.Create('Viewer', AFormClass));&lt;br /&gt;
&lt;br /&gt;
    // return the plugin&lt;br /&gt;
    Result := Plugin;&lt;br /&gt;
  except&lt;br /&gt;
    Result := nil;&lt;br /&gt;
    exit;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uCreatePlugin.pas create TLMDPlugin instance and init with three plugin method &amp;quot;GetSubTypesCount&amp;quot; - returns count of lmdlog message subtypes that will showed by this plugins. Next method is &amp;quot;GetSubTypeName&amp;quot; - returns name of subtype by it's index (0..GetSubTypesCount - 1). &amp;quot;GetSubType&amp;quot; method returns GUID that identificate subtype. And the last method is &amp;quot;GetSubTypeIconIndex&amp;quot; - it returns iconindex to show icon in AnyLogger console by subtype GUID.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, uCreatePlugin.pas do above basic steps for you. Next, you need to create form with interface ILMDFormWithData, which described in LMDPluginManager unit from [[LMD Plugins]] package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
{ **************************** ILMDFormWithData **************************** }&lt;br /&gt;
  ILMDFormWithData = interface(IInterface)&lt;br /&gt;
    ['{8999ED41-2791-4471-BFEB-994923CE1CD4}']&lt;br /&gt;
    procedure SetFormData(AData: Pointer);&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This interface is needed to fill form with you custom data. AnyLogger Console call SetFormData method with TLMDLogMessage instance as parameter. Here is example of such form:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
type&lt;br /&gt;
  TTextForm = class(TForm, ILMDFormWithData)&lt;br /&gt;
    edtText: TElMemo;&lt;br /&gt;
  private&lt;br /&gt;
    { Private declarations }&lt;br /&gt;
  public&lt;br /&gt;
    procedure SetFormData(AData: Pointer);&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  TextForm: TTextForm;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{$R *.dfm}&lt;br /&gt;
&lt;br /&gt;
{ TTextForm }&lt;br /&gt;
&lt;br /&gt;
procedure TTextForm.SetFormData(AData: Pointer);&lt;br /&gt;
begin&lt;br /&gt;
  edtText.Text := TLMDLogMessage(AData).MessageValue;&lt;br /&gt;
end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next step is creating child class for TLMDActionExecutor from uCreatePlugin.pas and override handlers of plugin methods. Example:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit intfTextView;&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  Classes, SysUtils, uCreatePlugin, LMDLogMessage, LMDPluginImpl, LMDPluginManager;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  TLMDTextActionExecutor = class(TLMDActionExecutor)&lt;br /&gt;
  public&lt;br /&gt;
    procedure GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetType(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetName(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TLMDTextActionExecutor }&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  AResult.AsInteger := 1;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  AResult.AsInteger := -1;&lt;br /&gt;
  if IsEqualGUID(AnAction[0].AsGUID, mstString) then&lt;br /&gt;
    AResult.AsInteger := 5;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetName(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  if IsEqualGUID(AnAction[0].AsGUID, mstString) then&lt;br /&gt;
    AResult.AsString := 'String';&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetType(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  case AnAction[0].AsInteger of&lt;br /&gt;
  0: AResult.AsGUID := mstString;&lt;br /&gt;
  else&lt;br /&gt;
    AResult.AsGUID := mstNone;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step is create Dll project with export function GetLMDPlugin (see [[LMD Plguins]] for details). &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
library TextView;&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils,&lt;br /&gt;
  Classes,&lt;br /&gt;
  Windows,&lt;br /&gt;
  Forms,&lt;br /&gt;
  uCreatePlugin,&lt;br /&gt;
  LMDLogMessage,&lt;br /&gt;
  LMDPluginImpl,&lt;br /&gt;
  LMDPluginManager,&lt;br /&gt;
  frmTextView in 'frmTextView.pas' {TableForm},&lt;br /&gt;
  intfTextView in 'intfTextView.pas';&lt;br /&gt;
&lt;br /&gt;
{$R *.res}&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  LOldApplication: TApplication;&lt;br /&gt;
&lt;br /&gt;
function GetLMDPlugin(const AHostApplication: TApplication; var APlugin: ILMDPlugin): HRESULT; stdcall;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    LOldApplication := Application;&lt;br /&gt;
    Application := AHostApplication;&lt;br /&gt;
&lt;br /&gt;
    APlugin := CreatePlugin(TLMDTextActionExecutor.Create, TTextForm);&lt;br /&gt;
  except&lt;br /&gt;
    Result := E_UNEXPECTED;&lt;br /&gt;
    exit;&lt;br /&gt;
  end;&lt;br /&gt;
  Result := S_OK;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure DllMain(AReason: integer) ;&lt;br /&gt;
begin&lt;br /&gt;
  case AReason of&lt;br /&gt;
   DLL_PROCESS_DETACH:&lt;br /&gt;
     if Assigned(LOldApplication) then&lt;br /&gt;
       Application := LOldApplication;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
exports&lt;br /&gt;
  GetLMDPlugin name 'GetLMDPlugin';&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  LOldApplication := nil;&lt;br /&gt;
  DllProc := @DllMain;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Compile it and copy result dll file to Viewers folder in AnyLogger console installation path.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_LogTools_tutorial&amp;diff=3843</id>
		<title>LMD LogTools tutorial</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_LogTools_tutorial&amp;diff=3843"/>
				<updated>2017-08-18T12:31:03Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= LogTools package =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Any programmer who is capable of writing complex applications is aware of the fact that some parts of code cannot be debugged with an interactive debugger (e.g. system service, threaded code, painting routines etc) or that situations exist, where an interactive debugger is unavailable. Common solution for for such cases is information logging. There many ways of logging - to files, to terminal, to system dialog boxes etc. To make life more simple we implemented a powerful logging system, that allows a developer to concentrate on main application logic instead of writing and debugging his own routines.&lt;br /&gt;
&lt;br /&gt;
== Class Structure ==&lt;br /&gt;
AnyLogger offer a flexible and extensible set of classes to log useful information. There are four main items: '''Message''', '''Session''', '''Transport''' and '''Manager'''. '''Message''' is container for information that should be logged. '''Session''' is class that wrap different information into Message and send it over '''Transport layer'''. '''Transport layer''' is responsible for physical delivery of Message. And at last but not least - the '''Manager''' allows user to create root (default) and user sessions, load/save user sessions and transport parameters. Secondary points are Router and Server (message Collector).&amp;lt;br&amp;gt;&lt;br /&gt;
See also the following class diagram:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:LogTools.png]]&lt;br /&gt;
&lt;br /&gt;
== First Example ==&lt;br /&gt;
In this section we will write traditional in programmer's community example - 'Hello, World!' sample program. Firstly, we create new Delphi Console Application (File-&amp;gt;New-&amp;gt;Other...-&amp;gt;Delphi Projects-&amp;gt;Console Application). Then replace content of new project by below code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
program HelloAnyLoggerWorld;&lt;br /&gt;
&lt;br /&gt;
{$APPTYPE CONSOLE}&lt;br /&gt;
 &lt;br /&gt;
uses&lt;br /&gt;
  SysUtils,&lt;br /&gt;
  LMDLogMessage;&lt;br /&gt;
 &lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    LMDLog.SendString(‘First message’, ‘Hello, World!’); &lt;br /&gt;
  except&lt;br /&gt;
    on E:Exception do&lt;br /&gt;
      LMDLog.SendException(E);&lt;br /&gt;
  end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, we need to run AnyLogger console.After that compile and run HelloAnyLoggerWorld project. If everything is installed correctly you should see in AnyLogger console 'First message'='Hello, World!' line.&lt;br /&gt;
&lt;br /&gt;
Now, let's take a closer look at what we did. First of all - we added LMDLogMessage unit in uses list. This unit contains declaration of all base needed types, classes and global variable LMDLog that contains object reference for root session (see. Sessions chapter). Secondly, we uses LMDLog global variable to call method of session - SendString which sends string using session transport (by default transport is WM_COPYDATA message which handled by AnyLogger console)&lt;br /&gt;
&lt;br /&gt;
== Basic Usage ==&lt;br /&gt;
Main purpose of this tool package is logging and monitoring actions of application. It should be used when you can't run regular debugger or when it useless - multi-thread application, system services, applications on client site etc.&lt;br /&gt;
&lt;br /&gt;
To start use LogTools in your application you should add LMDLogMessage.pas unit to uses section of your unit, then you'll be able to use LMDLog instance of TLMDLogSession class.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  LMDLog.SendString('Test', 'Hello, World!');&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDLogSession class has methods to send some info into main log - TLMDLogSession.Send*, to watch data in Watch area - TLMDLogSession.Watch* (main different with Send* function that Watch* has just changed value of watched variables, but not add new record)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  while i &amp;lt; 200 do&lt;br /&gt;
    LMDLog.WatchInteger('i', i);&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To logging flow of application, below methods available: TLMDLogSession.Enter*, TLMDLogSession.Leave*. Sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
function TestFunction: HResult;&lt;br /&gt;
begin&lt;br /&gt;
  LMDLog.EnterMethod('TestFunction');&lt;br /&gt;
  try&lt;br /&gt;
    ...&lt;br /&gt;
  finally&lt;br /&gt;
    LMDLog.SendHResult('Result', Result);&lt;br /&gt;
    LMDLog.LeaveMethod('TestFunction');&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and methods that help to trace of application&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  for i := 0 to Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    LMDLog.SendInteger('Iteration', i);&lt;br /&gt;
    b := 20 + i;&lt;br /&gt;
    LMDLog.TouchCounter('Checkpoint');&lt;br /&gt;
    a := CalcA(b);&lt;br /&gt;
    LMDLog.TouchCounter('Checkpoint');&lt;br /&gt;
    c := a div 34;&lt;br /&gt;
    LMDLog.ReleaseCounter('Checkpoint');&lt;br /&gt;
  end;&lt;br /&gt;
... &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; To control log storage TLMDLogSession has next methods - TLMDLogSession.ClearLog, TLMDLogSession.ClearWatch and TLMDLogSession.ClearCallStack&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; TLMDLogSession allow you to control level of you logging messages. It has two properties for it - TLMDLogSession.AllowLogLevel - set minimum log level for messages, TLMDLogSession.DefaultLogLevel - set default log level for messages where level is not set as parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  ..., LMDLogMessage, ...;&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
  {$ifdef DEBUG}&lt;br /&gt;
  LMDLog.AllowLogLevel := LogAll;&lt;br /&gt;
  LMDLog.AllowLogLevel := LogAll;&lt;br /&gt;
  {$ELSE}&lt;br /&gt;
  LMDLog.AllowLogLevel := LogFatal; &lt;br /&gt;
  LMDLog.DefaultLogLevel := LogOff;&lt;br /&gt;
  {$ENDIF}&lt;br /&gt;
  &lt;br /&gt;
  for i := 0 to 4 do&lt;br /&gt;
  begin&lt;br /&gt;
    try &lt;br /&gt;
      LMDLog.SendInteger('i', i);&lt;br /&gt;
      a := 5 / i;&lt;br /&gt;
      LMDLog.SendReal('a', a);&lt;br /&gt;
    except&lt;br /&gt;
      on E: EDivideByZero do&lt;br /&gt;
        LMDLog.SendString(LogFatal, 'Error', 'Divide by zero');&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; Logging for 'a' and 'i' will be turned off when DEBUG undefined, but 'Error' will be sent to log in any case.&lt;br /&gt;
&lt;br /&gt;
== Creating custom sessions ==&lt;br /&gt;
&lt;br /&gt;
Custom sessions can be creating by using LMDLogManager.AddSession() method. Via it   custom transport, name etc. can be specified. example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLog := LMDLogManage.AddSession('SessionName|lmd_db_session|lmd_wmcopydata_log|WindowClass=TLMDLogHelperWindow;WindowName=LMDLogHelper');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can use it:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  MyLog.SendString('name', 'value');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  LMDLogManager.Sessions['SessionName'].SendString('name', 'value');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aboyut this string - 'SessionName|lmd_db_session|lmd_wmcopydata_log|WindowClass=TLMDLogHelperWindow;WindowName=LMDLogHelper'&lt;br /&gt;
&lt;br /&gt;
* '''SessionName''' - it's exactly what is it - session name. You can name it as you wish. Except &amp;quot;Root&amp;quot; - this name is reserved for session which stored in LMDLog&lt;br /&gt;
&lt;br /&gt;
* '''lmd_db_session''' - type of session that you want to create. Currently library contains two session classes - TLMDLogSession (lmd_db_session) and TLMDLogDBSession (lmd_db_session). 'lmd_db_session' and 'lmd_db_session' are specified in GetName method of session. If you will extend TLMDLogCustomSession to logging you custom data then you have to override this method and specify you own unique name&lt;br /&gt;
&lt;br /&gt;
* '''lmd_wmcopydata_log''' - type of transport that you want to create. each new transport have to override GetName method of TLMDLogCustomTransport and return it's own unique name.&lt;br /&gt;
&lt;br /&gt;
* '''WindowClass=TLMDLogHelperWindow''' and '''WindowName=LMDLogHelper''' - are transport parameters - can be different for different transports.&lt;br /&gt;
&lt;br /&gt;
= AnyLogger console application&amp;lt;br&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
This logging and monitoring console for LMD Log package. All data that you send from your application are collected and displayed here.&lt;br /&gt;
&lt;br /&gt;
[[Image:LMD Logger Console.png|Image:LMD_Logger_Console.png]]&lt;br /&gt;
&lt;br /&gt;
== Creating Viewer plugin for AnyLogger console&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
'''NB. This API information can be changed before AnyLogger release'''&lt;br /&gt;
&lt;br /&gt;
AnyLogger console can be extended&amp;amp;nbsp; by pluggable modules (plugins). Plugins based on new package [[LMD Plugins]]. Currently you can create plugin to view custom data, that you sent to console, in more obvious form. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To create such plugin you will need LMD Plugins package and uCreatePlugin.pas unit.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit uCreatePlugin;&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils, Forms, LMDPluginManager, LMDPluginImpl;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  TLMDActionExecutor = class(TObject)&lt;br /&gt;
  public&lt;br /&gt;
    procedure GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetType(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
    procedure GetName(const AnAction: ILMDAction; var AResult: ILMDParameter); virtual; stdcall; abstract;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
function CreatePlugin(AExecuter: TLMDActionExecutor; AFormClass: TFormClass): ILMDPlugin;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
function CreatePlugin(AExecuter: TLMDActionExecutor; AFormClass: TFormClass): ILMDPlugin;&lt;br /&gt;
var&lt;br /&gt;
  Plugin: TLMDPlugin;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    // Create the plugin&lt;br /&gt;
    Plugin := TLMDPlugin.Create('Author', 'AnyLogger plugin', 0, 1);&lt;br /&gt;
&lt;br /&gt;
    // add GetSupportedSubTypesCount action&lt;br /&gt;
    Plugin.AddAction('GetSubTypesCount').OnPerformAction := AExecuter.GetCount;&lt;br /&gt;
    with Plugin.AddAction('GetSubTypeName') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('SubType') do&lt;br /&gt;
        ParameterType := ptGUID;&lt;br /&gt;
      OnPerformAction := AExecuter.GetName;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    with Plugin.AddAction('GetSubType') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('Index') do&lt;br /&gt;
        ParameterType := ptInteger;&lt;br /&gt;
      OnPerformAction := AExecuter.GetType;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    with Plugin.AddAction('GetSubTypeIconIndex') do&lt;br /&gt;
    begin&lt;br /&gt;
      with AddParameter('SubType') do&lt;br /&gt;
        ParameterType := ptGUID;&lt;br /&gt;
      OnPerformAction := AExecuter.GetIcon;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
    // add form into plugin&lt;br /&gt;
    Plugin.AddForm(TLMDDelphiPluginForm.Create('Viewer', AFormClass));&lt;br /&gt;
&lt;br /&gt;
    // return the plugin&lt;br /&gt;
    Result := Plugin;&lt;br /&gt;
  except&lt;br /&gt;
    Result := nil;&lt;br /&gt;
    exit;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
uCreatePlugin.pas create TLMDPlugin instance and init with three plugin method &amp;quot;GetSubTypesCount&amp;quot; - returns count of lmdlog message subtypes that will showed by this plugins. Next method is &amp;quot;GetSubTypeName&amp;quot; - returns name of subtype by it's index (0..GetSubTypesCount - 1). &amp;quot;GetSubType&amp;quot; method returns GUID that identificate subtype. And the last method is &amp;quot;GetSubTypeIconIndex&amp;quot; - it returns iconindex to show icon in AnyLogger console by subtype GUID.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, uCreatePlugin.pas do above basic steps for you. Next, you need to create form with interface ILMDFormWithData, which described in LMDPluginManager unit from [[LMD Plugins]] package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
{ **************************** ILMDFormWithData **************************** }&lt;br /&gt;
  ILMDFormWithData = interface(IInterface)&lt;br /&gt;
    ['{8999ED41-2791-4471-BFEB-994923CE1CD4}']&lt;br /&gt;
    procedure SetFormData(AData: Pointer);&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/delphi&amp;gt; &amp;lt;br&amp;gt; This interface is needed to fill form with you custom data. AnyLogger Console call SetFormData method with TLMDLogMessage instance as parameter. Here is example of such form:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;delphi&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
type&lt;br /&gt;
  TTextForm = class(TForm, ILMDFormWithData)&lt;br /&gt;
    edtText: TElMemo;&lt;br /&gt;
  private&lt;br /&gt;
    { Private declarations }&lt;br /&gt;
  public&lt;br /&gt;
    procedure SetFormData(AData: Pointer);&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  TextForm: TTextForm;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{$R *.dfm}&lt;br /&gt;
&lt;br /&gt;
{ TTextForm }&lt;br /&gt;
&lt;br /&gt;
procedure TTextForm.SetFormData(AData: Pointer);&lt;br /&gt;
begin&lt;br /&gt;
  edtText.Text := TLMDLogMessage(AData).MessageValue;&lt;br /&gt;
end;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next step is creating child class for TLMDActionExecutor from uCreatePlugin.pas and override handlers of plugin methods. Example:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
unit intfTextView;&lt;br /&gt;
&lt;br /&gt;
interface&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  Classes, SysUtils, uCreatePlugin, LMDLogMessage, LMDPluginImpl, LMDPluginManager;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
  TLMDTextActionExecutor = class(TLMDActionExecutor)&lt;br /&gt;
  public&lt;br /&gt;
    procedure GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetType(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
    procedure GetName(const AnAction: ILMDAction; var AResult: ILMDParameter); override; stdcall;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TLMDTextActionExecutor }&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetCount(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  AResult.AsInteger := 1;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetIcon(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  AResult.AsInteger := -1;&lt;br /&gt;
  if IsEqualGUID(AnAction[0].AsGUID, mstString) then&lt;br /&gt;
    AResult.AsInteger := 5;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetName(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  if IsEqualGUID(AnAction[0].AsGUID, mstString) then&lt;br /&gt;
    AResult.AsString := 'String';&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TLMDTextActionExecutor.GetType(const AnAction: ILMDAction; var AResult: ILMDParameter);&lt;br /&gt;
begin&lt;br /&gt;
  case AnAction[0].AsInteger of&lt;br /&gt;
  0: AResult.AsGUID := mstString;&lt;br /&gt;
  else&lt;br /&gt;
    AResult.AsGUID := mstNone;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And final step is create Dll project with export function GetLMDPlugin (see [[LMD Plguins]] for details). &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
library TextView;&lt;br /&gt;
&lt;br /&gt;
uses&lt;br /&gt;
  SysUtils,&lt;br /&gt;
  Classes,&lt;br /&gt;
  Windows,&lt;br /&gt;
  Forms,&lt;br /&gt;
  uCreatePlugin,&lt;br /&gt;
  LMDLogMessage,&lt;br /&gt;
  LMDPluginImpl,&lt;br /&gt;
  LMDPluginManager,&lt;br /&gt;
  frmTextView in 'frmTextView.pas' {TableForm},&lt;br /&gt;
  intfTextView in 'intfTextView.pas';&lt;br /&gt;
&lt;br /&gt;
{$R *.res}&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  LOldApplication: TApplication;&lt;br /&gt;
&lt;br /&gt;
function GetLMDPlugin(const AHostApplication: TApplication; var APlugin: ILMDPlugin): HRESULT; stdcall;&lt;br /&gt;
begin&lt;br /&gt;
  try&lt;br /&gt;
    LOldApplication := Application;&lt;br /&gt;
    Application := AHostApplication;&lt;br /&gt;
&lt;br /&gt;
    APlugin := CreatePlugin(TLMDTextActionExecutor.Create, TTextForm);&lt;br /&gt;
  except&lt;br /&gt;
    Result := E_UNEXPECTED;&lt;br /&gt;
    exit;&lt;br /&gt;
  end;&lt;br /&gt;
  Result := S_OK;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure DllMain(AReason: integer) ;&lt;br /&gt;
begin&lt;br /&gt;
  case AReason of&lt;br /&gt;
   DLL_PROCESS_DETACH:&lt;br /&gt;
     if Assigned(LOldApplication) then&lt;br /&gt;
       Application := LOldApplication;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
exports&lt;br /&gt;
  GetLMDPlugin name 'GetLMDPlugin';&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  LOldApplication := nil;&lt;br /&gt;
  DllProc := @DllMain;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Compile it and copy result dll file to Viewers folder in AnyLogger console installation path.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_MiniHTML&amp;diff=3842</id>
		<title>LMD VCL - MiniHTML</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_MiniHTML&amp;diff=3842"/>
				<updated>2017-08-18T12:27:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
== Supported subset of HTML tags ==&lt;br /&gt;
&lt;br /&gt;
LMD 2007 shared Runtime (or better) integrates Mini HTML for controls with HTML support. Following subset of HTML tags are available:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Tag&lt;br /&gt;
| Syntax&lt;br /&gt;
| Comments &amp;amp;amp; samples&lt;br /&gt;
|-&lt;br /&gt;
| Bold&lt;br /&gt;
| &amp;amp;lt;b&amp;amp;gt;, &amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
| '''bold'''&lt;br /&gt;
|-&lt;br /&gt;
| Italic&lt;br /&gt;
| &amp;amp;lt;i&amp;amp;gt;, &amp;amp;lt;/i&amp;amp;gt;&lt;br /&gt;
| ''italic''&lt;br /&gt;
|-&lt;br /&gt;
| Underline&lt;br /&gt;
| &amp;amp;lt;u&amp;amp;gt;, &amp;amp;lt;/u&amp;amp;gt;&lt;br /&gt;
| &amp;lt;u&amp;gt;underline&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Strikeout&lt;br /&gt;
| &amp;amp;lt;strikeout&amp;amp;gt;, &amp;amp;lt;/strikeout&amp;amp;gt; or &amp;amp;lt;s&amp;amp;gt;, &amp;amp;lt;/s&amp;amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;striked out&amp;lt;/s&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph&lt;br /&gt;
| &amp;amp;lt;p [align=&amp;quot;left&amp;amp;#124;right&amp;amp;#124;center&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| Use ''align'' parameter to specify the alignment of the text in the paragraph. Default value for align is &amp;quot;left&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Subscript&lt;br /&gt;
| &amp;amp;lt;sub&amp;amp;gt;, &amp;amp;lt;/sub&amp;amp;gt;&lt;br /&gt;
| Subscript text is drawn with smaller font and with baseline moved down.&lt;br /&gt;
|-&lt;br /&gt;
| Superscript&lt;br /&gt;
| &amp;amp;lt;sup&amp;amp;gt;, &amp;amp;lt;/sup&amp;amp;gt;&lt;br /&gt;
| Superscript text is drawn with smaller font and with baseline moved up.&lt;br /&gt;
|-&lt;br /&gt;
| Unordered list of elements&lt;br /&gt;
| &amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ul&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
* item 1&lt;br /&gt;
* item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Ordered list of elements&lt;br /&gt;
| &amp;amp;lt;ol&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ol&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
# item 1&lt;br /&gt;
# item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Horizontal divider&lt;br /&gt;
| &amp;amp;lt;hr [width=&amp;quot;width&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| If no value for ''width'' attribute is specified, then it will take maximum available value.&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;amp;lt;br&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;font [name=&amp;quot;fontname&amp;quot;] [size=&amp;quot;x&amp;amp;#124;+x&amp;amp;#124;-x&amp;amp;#124;x px&amp;quot;] [color={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}] [bgcolor={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}]&amp;amp;gt;text&amp;amp;lt;/font&amp;amp;gt;&lt;br /&gt;
| You can specify the name of the font name, size (absolute size or increase, decrease of size) &lt;br /&gt;
and font background color. Color must be a valid hexadecimal value in common HTML format, valid VCL color identifier (clWhite, clBtnFace for example) or valid HTML color identifier (red, black, btnshadow for example. You can use ''background'' synonym for ''bgcolor'' attribute. &amp;lt;br&amp;gt;'''Note''': If ''size'' value is greater than 0 and less than 10 and there is no plus or minus sign, then it means standard font increase relative to default size. Example:&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;2&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=2&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=3&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=4&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;In order to specify exact font size in pixels, use size=&amp;quot;N px&amp;quot; form of the size attribute.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| &amp;amp;lt;a href=&amp;quot;link&amp;quot;&amp;amp;gt;link text&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
| ''Link'' parameter value is passed to OnLinkClick event handler, present in some controls (not all controls support clicking on the URLs.&lt;br /&gt;
|-&lt;br /&gt;
| Embedded image&lt;br /&gt;
| &amp;amp;lt;img src=&amp;quot;image&amp;quot; [width=&amp;quot;w&amp;quot;] [height=&amp;quot;h&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| The ''src'' parameter value is passed to the OnImageNeeded event handler. You can specify the width and height of the image rectangle if needed. By default the width and height are taken from the image you provide in event handler, but you can stretch image on drawing by specifying width and height explicitly.&amp;lt;br&amp;gt;&lt;br /&gt;
The simplest OnImageNeeded event handlers:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&lt;br /&gt;
begin&lt;br /&gt;
    Image.LoadFromFile(SourceName);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&lt;br /&gt;
begin&lt;br /&gt;
    ImageList1.GetBitmap(strtoint(SourceName), Image.Bitmap);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Variables&lt;br /&gt;
| &amp;amp;lt;~~myVariable&amp;amp;gt;&lt;br /&gt;
| The ''aVarName'', ''aVarValue'' parameters are passed to the OnVariableNeeded event handler, which defines what value substitutes the tag&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm2.LMDHTMLLabel1VariableNeeded(Sender: TObject; const aVarName: TLMDString; var aVarValue: TLMDString);&lt;br /&gt;
begin&lt;br /&gt;
  aVarValue := '1111';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Embedded controls&lt;br /&gt;
|&amp;amp;lt;control vclclass= width= height= name=&amp;amp;gt;&lt;br /&gt;
|Allows embedding of any control into HTML text &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Supported special symbols&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 align=center&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cent   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cent;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oacute;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup1   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup1;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;copy   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;copy;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup2   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup2;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;curren &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;curren;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Icirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup3   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup3;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;deg    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;deg;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;icirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;szlig  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;szlig;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acute;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;divide &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;divide;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iexcl   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iexcl;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;THORN  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;THORN;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;AElig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;AElig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordf &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordf;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;times  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;times;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aelig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aelig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordm &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordm;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;trade  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;trade;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iquest  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iquest;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iuml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;amp     &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;amp;&amp;lt;/td&amp;gt;          &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Egrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iuml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ucirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ucirc;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;egrave;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;laquo   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;laquo;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ETH    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ETH;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;lt       &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;lt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eth    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eth;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;macr &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;macr;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;micro    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;micro;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;para &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;para;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uuml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uuml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;middot   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;middot;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;plusmn   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;plusmn;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Yacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Yacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euro   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euro;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;nbsp &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;pound    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;pound;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;yen    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;yen;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;brvbar  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;brvbar;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac12 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac12;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;not      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;not;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;quot &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;quot;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac14 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac14;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;raquo    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;raquo;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac34 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac34;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;reg      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;reg;&amp;lt;/td&amp;gt;      &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cedil   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cedil;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;gt &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;gt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sect &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sect;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_MiniHTML&amp;diff=3841</id>
		<title>LMD VCL - MiniHTML</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_MiniHTML&amp;diff=3841"/>
				<updated>2017-08-18T12:24:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
== Supported subset of HTML tags ==&lt;br /&gt;
&lt;br /&gt;
LMD 2007 shared Runtime (or better) integrates Mini HTML for controls with HTML support. Following subset of HTML tags are available:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Tag&lt;br /&gt;
| Syntax&lt;br /&gt;
| Comments &amp;amp;amp; samples&lt;br /&gt;
|-&lt;br /&gt;
| Bold&lt;br /&gt;
| &amp;amp;lt;b&amp;amp;gt;, &amp;amp;lt;/b&amp;amp;gt;&lt;br /&gt;
| '''bold'''&lt;br /&gt;
|-&lt;br /&gt;
| Italic&lt;br /&gt;
| &amp;amp;lt;i&amp;amp;gt;, &amp;amp;lt;/i&amp;amp;gt;&lt;br /&gt;
| ''italic''&lt;br /&gt;
|-&lt;br /&gt;
| Underline&lt;br /&gt;
| &amp;amp;lt;u&amp;amp;gt;, &amp;amp;lt;/u&amp;amp;gt;&lt;br /&gt;
| &amp;lt;u&amp;gt;underline&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Strikeout&lt;br /&gt;
| &amp;amp;lt;strikeout&amp;amp;gt;, &amp;amp;lt;/strikeout&amp;amp;gt; or &amp;amp;lt;s&amp;amp;gt;, &amp;amp;lt;/s&amp;amp;gt;&lt;br /&gt;
| &amp;lt;s&amp;gt;striked out&amp;lt;/s&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Paragraph&lt;br /&gt;
| &amp;amp;lt;p [align=&amp;quot;left&amp;amp;#124;right&amp;amp;#124;center&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| Use ''align'' parameter to specify the alignment of the text in the paragraph. Default value for align is &amp;quot;left&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Subscript&lt;br /&gt;
| &amp;amp;lt;sub&amp;amp;gt;, &amp;amp;lt;/sub&amp;amp;gt;&lt;br /&gt;
| Subscript text is drawn with smaller font and with baseline moved down.&lt;br /&gt;
|-&lt;br /&gt;
| Superscript&lt;br /&gt;
| &amp;amp;lt;sup&amp;amp;gt;, &amp;amp;lt;/sup&amp;amp;gt;&lt;br /&gt;
| Superscript text is drawn with smaller font and with baseline moved up.&lt;br /&gt;
|-&lt;br /&gt;
| Unordered list of elements&lt;br /&gt;
| &amp;amp;lt;ul&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ul&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
* item 1&lt;br /&gt;
* item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Ordered list of elements&lt;br /&gt;
| &amp;amp;lt;ol&amp;amp;gt;&amp;amp;lt;li&amp;amp;gt;item&amp;amp;lt;/li&amp;amp;gt;...&amp;amp;lt;/ol&amp;amp;gt;&lt;br /&gt;
| &lt;br /&gt;
# item 1&lt;br /&gt;
# item 2&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Horizontal divider&lt;br /&gt;
| &amp;amp;lt;hr [width=&amp;quot;width&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| If no value for ''width'' attribute is specified, then it will take maximum available value.&lt;br /&gt;
|-&lt;br /&gt;
| Line break&lt;br /&gt;
| &amp;amp;lt;br&amp;amp;gt;&lt;br /&gt;
| &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| Font&lt;br /&gt;
| &amp;amp;lt;font [name=&amp;quot;fontname&amp;quot;] [size=&amp;quot;x&amp;amp;#124;+x&amp;amp;#124;-x&amp;amp;#124;x px&amp;quot;] [color={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}] [bgcolor={&amp;quot;#rrggbb&amp;quot;&amp;amp;#124;&amp;quot;color name&amp;quot;}]&amp;amp;gt;text&amp;amp;lt;/font&amp;amp;gt;&lt;br /&gt;
| You can specify the name of the font name, size (absolute size or increase, decrease of size) &lt;br /&gt;
and font background color. Color must be a valid hexadecimal value in common HTML format, valid VCL color identifier (clWhite, clBtnFace for example) or valid HTML color identifier (red, black, btnshadow for example. You can use ''background'' synonym for ''bgcolor'' attribute. &amp;lt;br&amp;gt;'''Note''': If ''size'' value is greater than 0 and less than 10 and there is no plus or minus sign, then it means standard font increase relative to default size. Example:&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;2&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=2&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=3&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;font face=&amp;quot;Arial&amp;quot; size=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;lt;font name=&amp;quot;Arial&amp;quot; size=4&amp;amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;In order to specify exact font size in pixels, use size=&amp;quot;N px&amp;quot; form of the size attribute.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Hyperlink&lt;br /&gt;
| &amp;amp;lt;a href=&amp;quot;link&amp;quot;&amp;amp;gt;link text&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
| ''Link'' parameter value is passed to OnLinkClick event handler, present in some controls (not all controls support clicking on the URLs.&lt;br /&gt;
|-&lt;br /&gt;
| Embedded image&lt;br /&gt;
| &amp;amp;lt;img src=&amp;quot;image&amp;quot; [width=&amp;quot;w&amp;quot;] [height=&amp;quot;h&amp;quot;]&amp;amp;gt;&lt;br /&gt;
| The ''src'' parameter value is passed to the OnImageNeeded event handler. You can specify the width and height of the image rectangle if needed. By default the width and height are taken from the image you provide in event handler, but you can stretch image on drawing by specifying width and height explicitly.&amp;lt;br&amp;gt;&lt;br /&gt;
The simplest OnImageNeeded event handlers:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&amp;lt;br&amp;gt;begin&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;Image.LoadFromFile(SourceName);&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;procedure TForm1.LMDHTMLLabel1ImageNeeded(Sender: TObject; SourceName: TLMDString; var Image: TPicture);&amp;lt;br&amp;gt;begin&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;ImageList1.GetBitmap(strtoint(SourceName), Image.Bitmap);&amp;lt;br&amp;gt;end;&amp;lt;br&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Variables&lt;br /&gt;
| &amp;amp;lt;~~myVariable&amp;amp;gt;&lt;br /&gt;
| The ''aVarName'', ''aVarValue'' parameters are passed to the OnVariableNeeded event handler, which defines what value substitutes the tag&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm2.LMDHTMLLabel1VariableNeeded(Sender: TObject; const aVarName: TLMDString; var aVarValue: TLMDString);&lt;br /&gt;
begin&lt;br /&gt;
  aVarValue := '1111';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Embedded controls&lt;br /&gt;
|&amp;amp;lt;control vclclass= width= height= name=&amp;amp;gt;&lt;br /&gt;
|Allows embedding of any control into HTML text &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Supported special symbols&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 align=center&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cent   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cent;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oacute;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup1   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup1;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aacute  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aacute;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;copy   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;copy;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup2   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup2;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;curren &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;curren;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Icirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ocirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ocirc;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sup3   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sup3;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acirc   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acirc;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;deg    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;deg;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;icirc    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;icirc;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;szlig  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;szlig;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;acute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;acute;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;divide &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;divide;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iexcl   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iexcl;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ograve   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ograve;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;THORN  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;THORN;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;AElig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;AElig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordf &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordf;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;times  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;times;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aelig   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aelig;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eacute &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eacute;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;igrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;igrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ordm &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ordm;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;trade  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;trade;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iquest  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iquest;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;agrave  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;agrave;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ecirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ecirc;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Iuml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;oslash   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;oslash;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;amp     &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;amp;&amp;lt;/td&amp;gt;          &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Egrave;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;iuml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;iuml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ucirc  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ucirc;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;egrave &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;egrave;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;laquo   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;laquo;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;otilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;otilde;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;aring   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;aring;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ETH    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ETH;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;lt       &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;lt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ugrave&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ugrave;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;eth    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;eth;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;macr &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;macr;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ouml &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ouml;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;uml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;uml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;atilde  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;atilde;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;micro    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;micro;&amp;lt;/td&amp;gt;      &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;para &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;para;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Uuml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Uuml;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;   &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euml   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euml;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;middot   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;middot;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;plusmn   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;plusmn;&amp;lt;/td&amp;gt;   &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Yacute&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Yacute;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;auml    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;auml;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;euro   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;euro;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;nbsp &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;pound    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;pound;&amp;lt;/td&amp;gt;    &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;yen    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;yen;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;    &lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;brvbar  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;brvbar;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac12 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac12;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;not      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;not;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;quot &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;quot;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac14 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac14;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;raquo    &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;raquo;&amp;lt;/td&amp;gt;    &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ccedil  &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ccedil;&amp;lt;/td&amp;gt;       &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;frac34 &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;frac34;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;ntilde   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;ntilde;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;reg      &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;reg;&amp;lt;/td&amp;gt;      &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;cedil   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;cedil;&amp;lt;/td&amp;gt;        &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;gt &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;gt;&amp;lt;/td&amp;gt;         &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;Oacute   &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;Oacute;&amp;lt;/td&amp;gt;     &amp;lt;td bgcolor=silver&amp;gt;&amp;amp;amp;sect &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;sect;&amp;lt;/td&amp;gt;     &amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_General_FAQ&amp;diff=3840</id>
		<title>LMD VCL - General FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_General_FAQ&amp;diff=3840"/>
				<updated>2017-08-18T12:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}}&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== CBuilder SpeedUp ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;oleidl.h&amp;gt; &lt;br /&gt;
#define NO_WIN32_LEAN_AND_MEAN &amp;lt;/syntaxhighlight&amp;gt;NO_WIN32_LEAN_AND_MEAN &amp;lt;br&amp;gt;When this macro is defined, VCL.H does not define WIN32_LEAN_AND_MEAN. Default: OFF&lt;br /&gt;
&lt;br /&gt;
VCL_FULL&amp;lt;br&amp;gt;Same as NO_WIN32_LEAN_AND_MEAN (NOTE: This macro is for BCB v1.0 backward compatibility) Default: OFF&lt;br /&gt;
&lt;br /&gt;
INC_VCLDB_HEADERS&amp;lt;br&amp;gt;When this macro is defined, VCL.H includes the core Database headers of VCL. (Defining this macro is functionally equivalent to including VCLDB.H) Default: OFF&lt;br /&gt;
&lt;br /&gt;
INC_ALLVCL_HEADERS&amp;lt;br&amp;gt;When this macro is defined, VCL.H includes all VCL headers. (Defining this macro is functionally equivalent to including VCLMAX.H) Default: OFF&lt;br /&gt;
&lt;br /&gt;
=== CHM Helpfiles - content not visible ===&lt;br /&gt;
If you see no content in CHM files, you need to unblock the file in the file properties dialog. For more information read e.g. this &lt;br /&gt;
[http://stackoverflow.com/questions/11438634/opening-a-chm-file-produces-navigation-to-the-webpage-was-canceled/11438732 Stackoverflow topic].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Entry Point not found&amp;quot;/&amp;quot;Could not find [..]&amp;quot; during startup of IDE ====&lt;br /&gt;
&lt;br /&gt;
===== Version Mix Up =====&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Entry Point not found&amp;quot; or &amp;quot;Could not find [..]&amp;quot; errors occur during startup of IDE, problem is most likely caused by a version mix up.&amp;lt;br&amp;gt;Reason: Delphi/C++ Builder still has access to older or different runtime packages (--&amp;amp;gt; multiple variants of same runtime package reside on your system. Especially when older versions reside in \system32 folder, they are preferred against those which reside in \projects\bpl directory). &amp;lt;br&amp;gt;If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with lmd[..], so using the filter lmd*.bpl for harddisk search should work. &amp;lt;br&amp;gt;Usually this problem occurs when a previous version was not removed completely. E.g. if you compiled sourcecode, Delphi places created runtime BPL's automatically into the default BPL output path (can be specified in Environment Options dialog). Older version may have installed them in System directory - so there is the possible version conflict.&amp;lt;br&amp;gt; To completely remove an old LMD-Tools version (the hard way):&lt;br /&gt;
&lt;br /&gt;
* Close Delphi / C++ IDE (Note: Be sure that you did not include any LMD VCL units in own packages, otherwise open these packages, remove LMD-Tools units and recompile them). &lt;br /&gt;
** Use all uninstallers for previous packages&lt;br /&gt;
** Delete all LMD-Tools directoies&lt;br /&gt;
** Delete all LMD-Tools path settings from Extras|Environment Options|Tab Library&lt;br /&gt;
** Now most important point: Search your harddisk (at least in your system directory&lt;br /&gt;
&lt;br /&gt;
and the Delphi Projects\BPL path) for LMD BPLs. Use as search string lmd*.bpl for runtime packages.&lt;br /&gt;
&lt;br /&gt;
* Use as search string dcllmd*.bpl for designtime packages.&lt;br /&gt;
* Remove them all&lt;br /&gt;
&lt;br /&gt;
After that try to reinstall original package or use sourcecode installer. To install LMD VCL sourcecode:&lt;br /&gt;
&lt;br /&gt;
* Use the source installer of your product&lt;br /&gt;
* After installation check whether paths to LMD VCL source files are correctly set. If for any reason not, add them yourself&lt;br /&gt;
* We have extremly simplified source compilation. Load the correct project group and compile one package after another. Install only designtime packages (dcllmd*.bpk). All compiled packages can be found after compilation in the Projects\BPL path of your IDE version.&lt;br /&gt;
&lt;br /&gt;
===== Packages not installed in a system path =====&lt;br /&gt;
&lt;br /&gt;
The second common reason is caused by the fact, that packages were installed into a non-system path. E.g. when you have specified a custom output folder for BPLs in your IDE settings, you must assure, that especially runtime packages are installed into a system path. Otherwise you will see packages when you install them, but with next start of BDS/IDE you get error that a specific package can not be found. In BDS or Codegear RAD Studio IDEs (Delphi 2005 and better) you can easily extend your PATH settings in Environment Settings|Environment Variables in Options dialog. Otherwise you need to modify PATH variable in system settings, if you don't want to use default BPL folder.&lt;br /&gt;
&lt;br /&gt;
=== [Fatal Error]: Unit XXXX was compiled with a different version of XXXXX ===&lt;br /&gt;
&lt;br /&gt;
''Example''&amp;lt;br&amp;gt;'''[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Reason''&amp;lt;br&amp;gt;A previous installation (trial, previous release) was not removed completely. This error message might also occur, when you try to use precompiled LMD VCL packages with Delphi/C++ Builder trials.&amp;amp;nbsp;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Solution''&amp;lt;br&amp;gt;Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read ''Uninstall'' section in installation guide.&lt;br /&gt;
&lt;br /&gt;
=== LMD[..].pas not found error / Version Mix Up ===&lt;br /&gt;
&lt;br /&gt;
If IDE claims that it can't find a file (though DCUs are available and Library Path is set correctly - see Environment Options), there are only a few possible causes for this problem:&lt;br /&gt;
&lt;br /&gt;
* Your IDE version is not compatible with precompiled LMD VCL package. Make sure that you do not use a Delphi / C++ Builder trial and that you have installed all required service packs of your IDE.&lt;br /&gt;
* Most probably this is a version mix up. For the offending files please check whether a previous version was completely uninstalled, that no parts are compiled into existing packages (e.g. your personal packages, you might have to rebuild the package) and that your project was REBUILD (to force the compilation of latest PAS/DCU files). Furthermore the project files may have references to older package files (especially if you use runtime packages, simply check Package settings in Project Options.&lt;br /&gt;
&lt;br /&gt;
=== LMD VCL Trials or SE releases do NOT work with Delphi / C++ Builder Trials! ===&lt;br /&gt;
&lt;br /&gt;
To make it short: &amp;amp;nbsp;You need a full version of C++ Builder/Delphi to run any precompiled version (Trial or SE). The VCL files in Borland Trials use a different DCU signature than full versions. &amp;lt;br&amp;gt;So many or almost all precompiled packages will fail to work on a C++ Builder/Delphi Trialversion. If you own a sourcecode version, then you can compile code as usual even in CodeGear trials.&lt;br /&gt;
&lt;br /&gt;
=== After installation (without errors) components do not appear on component palette ===&lt;br /&gt;
&lt;br /&gt;
Please check first in ''Install Components...'' dialog whether Package entries were created at all. If items are not available, packages have to be installed manually (check installation guide in \info folder). If items are available, but not checked: Check them to enable packages. If you receive error messages, IDE has no (or wrong) access to the runtime packages. Please check then whether installer has installed runtime packages correctly into your default output BPL folder. If runtime/designtime packages are missing, locate the files on your harddisk and copy them to the default folder and add them manually.&lt;br /&gt;
&lt;br /&gt;
==== BDS (Delphi 2005 and higher) specific problems ====&lt;br /&gt;
&lt;br /&gt;
===== Disabled Packages =====&lt;br /&gt;
&lt;br /&gt;
If components do not appear on component palette, though installation worked without problems: Please check wether IDE did not disable corresponding package entries (this may e.g. happen when during previous start of IDE runtime packages were not found). Alternatively you may check following registry key:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;_CURRENT_USER\Software\Borland\BDS\X.0\Disabled Packages&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''X.0''' specifies the BDS version, e.g. 3.0 for Delphi 2005, 4.0 for BDS 2006 and so on.&lt;br /&gt;
&lt;br /&gt;
===== Wrong Default Project Options =====&lt;br /&gt;
&lt;br /&gt;
Another possible cause of problems are wrong Default Project Options (custom default project options were set). Check Default Project Options in BDS in Project Menu (at the very end when no project is loaded) and especially review path and package settings. Especially remove packages from previous versions from the &amp;quot;Use runtime Packages&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
==== Localized BDS Versions ====&lt;br /&gt;
&lt;br /&gt;
'''For localized (german, japanes, french) Delphi/C++ Builder IDEs (from Delphi 2005 and higher) the identification of the default BPL output path may fail. If problem occurs, please copy files manually to the correct folder.'''&lt;br /&gt;
&lt;br /&gt;
==== Important Registry keys explained ====&lt;br /&gt;
&lt;br /&gt;
This section lists Delphi personality relevant registry keys:&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\X.0\Known Packages&lt;br /&gt;
&lt;br /&gt;
Lists all packages which should be loaded during&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Disabled Packages&lt;br /&gt;
&lt;br /&gt;
This key includes all packages which should be &amp;lt;u&amp;gt;NOT&amp;lt;/u&amp;gt; loaded, even if they are included in &amp;quot;Known Packages&amp;quot; key-&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Library all search paths: &lt;br /&gt;
** Search Path: *.dcu, *.dcp, *.dfm etc. files&lt;br /&gt;
** Package DPL Search Path: *.bpl files&lt;br /&gt;
** Package DCP Search Path: *.dcp files&lt;br /&gt;
** Browsing Path: Source files&lt;br /&gt;
** Debug DCU Path (optional): Path to DCU files with debug information. Not used with LMD VCL products.&lt;br /&gt;
&lt;br /&gt;
== IDE ==&lt;br /&gt;
&lt;br /&gt;
=== Disappearing Components in VCL.NET packages ===&lt;br /&gt;
&lt;br /&gt;
Note: Problem seems to be limited to BDS 2006 / CRS 2007 or better&amp;lt;br&amp;gt;A few customers reported about a problem with disappearing components (reproducible in Installed .NET components... dialog) in VCL.NET personalitites. This problem is limited to a few assemblies only (RTLX, RichPack and LMD-Tools components). This problem had been investigated, we found problem is related to LMD Design Time assemblies which make use of CodeGear design time packages(located in the \Bin folder of your BDS/CRS installation folder).&amp;lt;br&amp;gt;Since '''LMD-Tools 8.10''' installers and package project files were changed (for LMD ElPack and LMD IDE-Tools as well). Changes are:&lt;br /&gt;
&lt;br /&gt;
* By default LMD DesignTime assemblies are now installed into the \Bin folder below BDS/CRS installation folder. This work around solve the problem.&lt;br /&gt;
* The designtime projects files also locate design time &amp;amp;nbsp;assemblies into \bin folder (see project options)&lt;br /&gt;
* If you don't want this behaviour (or if it is technically not possible, e.g. caused by security settings in Vista): &lt;br /&gt;
** For compiled packages: Choose in installer option to install designtime packages into library folder.&lt;br /&gt;
** For source packages: Change project options in designtime projects.&lt;br /&gt;
** In both cases: Add the \bin folder of your IDE installation to the Assembly search folder.&lt;br /&gt;
&lt;br /&gt;
=== Corrupted/screwed Component Palette ===&lt;br /&gt;
&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
''Answer 1:''&amp;lt;br&amp;gt;This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&amp;lt;br&amp;gt;There are several ways to workaround:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
# If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Answer 2:''&amp;lt;br&amp;gt;There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &amp;lt;br&amp;gt;Try these: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant)&lt;br /&gt;
# Start Delphi with the -ns switch&lt;br /&gt;
# Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)&lt;br /&gt;
# Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold.&lt;br /&gt;
# reduce the hardware acceleration for the card. (display-&amp;amp;gt;properties-&amp;amp;gt;settings-&amp;amp;gt;advances-&amp;amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3).&lt;br /&gt;
# Get the latest DirectX drivers.&lt;br /&gt;
# After Delphi is started, change the color depth (you can change it right back) of your video card. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &amp;lt;br&amp;gt;If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting.&lt;br /&gt;
&lt;br /&gt;
=== Help Index files disappear / AV's in CBuilder when starting help ===&lt;br /&gt;
&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
* To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
* Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
=== Debugger problem ===&lt;br /&gt;
&lt;br /&gt;
'''Problem: I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# The problem happens only within (older) IDEs (does not affect the executable).&lt;br /&gt;
# Get the projects #15804 and #16098 from [http://cc.codegear.com CodeGear Codecentral] and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
== Programming Techniques ==&lt;br /&gt;
&lt;br /&gt;
=== Unknown identifier during compilation ===&lt;br /&gt;
&lt;br /&gt;
You receive during compilation an ''&amp;quot;Unknown identifier...&amp;quot;'' for a procedure/function or type and you are certain that type name is correctly spelled. In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. To solve this problem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Mark the affected identifier in the code editor&lt;br /&gt;
# Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
# Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
# If helpfile does not deliver you unit name, search the interface files (or source files) for the typename and find out where the type name is declared. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
# Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
=== Accessing enumerated values at runtime ===&lt;br /&gt;
&lt;br /&gt;
You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like &amp;amp;lt;source&amp;amp;gt;[foAutoShow, foAutoCenter])&amp;amp;lt;/source&amp;amp;gt;, but you don't know how to achieve this at runtime.&amp;lt;br&amp;gt;The Options property of TLMDForm is used as example.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To ''check'' for a flag, use code as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
To ''enable'' or ''disable'' a specific flag, use following code: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; or &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Duplicate identifier during compilation ===&lt;br /&gt;
&lt;br /&gt;
''Situation''&amp;lt;br&amp;gt;You want to specify a new value to property at runtime. During compilation you receive an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&amp;lt;br&amp;gt;'''Example'''&amp;lt;br&amp;gt;You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g. &amp;lt;delphi&amp;gt;LMDDBNImage1.Style:=sbKeepAspRatio;&amp;lt;/delphi&amp;gt; You receive &amp;quot;Incompatible Types error -&amp;amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Solution''&amp;lt;br&amp;gt;Make sure that Compiler uses correct type defintion. To solve problem demonstrated in example: &amp;lt;br&amp;gt;You probably included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. &amp;lt;br&amp;gt;There are two ways to workaround this problem:&lt;br /&gt;
&lt;br /&gt;
# Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj)&lt;br /&gt;
# Add lmdgraph before the type name of the corresponding type to ensure that correct type is used, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDDBNImage1.Style := lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E2134 Type 'TRect' has no type info ===&lt;br /&gt;
&lt;br /&gt;
It is caused by turning on the 'Emit runtime type information' flag in the compiler options. Apparently, using this flag will generate this error if the dcs's are compiled with different versions of the base units where these types are declared&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= If you upgrade from LMD-Tools 7 or earlier: =&lt;br /&gt;
&lt;br /&gt;
Unit changes several units were reorganized and removed from the packages. So you might encounter following problems when trying to compile an existing project:&lt;br /&gt;
&lt;br /&gt;
=== File not found errors for certain units&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Following units are no longer required in LMD-Tools:&amp;lt;br&amp;gt; lmdbredt.pas, lmdbtn.pas, lmdcctrl.pas, lmdcombo.pas, lmdcompo.pas, LMDComponent.pas, LMDCtrl.pas, lmdctrlA.pas, lmddbctA.pas, lmddbctr.pas, lmddlgS.pas, lmdeditb.pas, lmdeditc.pas, LMDEditM.pas, lmdextcA.pas, lmdextcS.pas, LMDGrapA.pas, lmdgroup.pas, LMDMemoC.pas, lmdmmS.pas, lmdnonvA.pas, lmdnonvS.pas, lmdnwgui.pas, lmdrctrl.pas, lmdrectutils.pas, lmdshapA.pas, LMDStdCA.pas, lmdstdcS.pas (for CBuilder user: .hpp/.cpp extension). If compiler complains about these files simply remove the unit from the uses clause. This is the recommended way.&amp;lt;br&amp;gt; Alternatively install the units from the source\deprecated (Delphi only, CBuilder user must always remove references). These units are actually empty but make compiler happy.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br&amp;gt; Other changes&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The style for TLMDCustomButton and TLMDCustomSpeedButton (and controls using internal SpeedButtons) is now specified by the ButtonStyle property.&amp;lt;br&amp;gt;In addition the ubsWinXP, ubsWinXPCombo, ubsWinXPTool and ubsAutoDetect styles were removed, because CtlXP property (which is activated by default) is now supported by buttons. In most cases you need not to take care of this change, because we handle conversion automatically. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_General_FAQ&amp;diff=3839</id>
		<title>LMD VCL - General FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_General_FAQ&amp;diff=3839"/>
				<updated>2017-08-18T12:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}}&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== CBuilder SpeedUp ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;#include &amp;lt;oleidl.h&amp;gt; &lt;br /&gt;
#define NO_WIN32_LEAN_AND_MEAN &amp;lt;/syntaxhighlight&amp;gt;NO_WIN32_LEAN_AND_MEAN &amp;lt;br&amp;gt;When this macro is defined, VCL.H does not define WIN32_LEAN_AND_MEAN. Default: OFF&lt;br /&gt;
&lt;br /&gt;
VCL_FULL&amp;lt;br&amp;gt;Same as NO_WIN32_LEAN_AND_MEAN (NOTE: This macro is for BCB v1.0 backward compatibility) Default: OFF&lt;br /&gt;
&lt;br /&gt;
INC_VCLDB_HEADERS&amp;lt;br&amp;gt;When this macro is defined, VCL.H includes the core Database headers of VCL. (Defining this macro is functionally equivalent to including VCLDB.H) Default: OFF&lt;br /&gt;
&lt;br /&gt;
INC_ALLVCL_HEADERS&amp;lt;br&amp;gt;When this macro is defined, VCL.H includes all VCL headers. (Defining this macro is functionally equivalent to including VCLMAX.H) Default: OFF&lt;br /&gt;
&lt;br /&gt;
=== CHM Helpfiles - content not visible ===&lt;br /&gt;
If you see no content in CHM files, you need to unblock the file in the file properties dialog. For more information read e.g. this &lt;br /&gt;
[http://stackoverflow.com/questions/11438634/opening-a-chm-file-produces-navigation-to-the-webpage-was-canceled/11438732 Stackoverflow topic].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
==== &amp;quot;Entry Point not found&amp;quot;/&amp;quot;Could not find [..]&amp;quot; during startup of IDE ====&lt;br /&gt;
&lt;br /&gt;
===== Version Mix Up =====&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;Entry Point not found&amp;quot; or &amp;quot;Could not find [..]&amp;quot; errors occur during startup of IDE, problem is most likely caused by a version mix up.&amp;lt;br&amp;gt;Reason: Delphi/C++ Builder still has access to older or different runtime packages (--&amp;amp;gt; multiple variants of same runtime package reside on your system. Especially when older versions reside in \system32 folder, they are preferred against those which reside in \projects\bpl directory). &amp;lt;br&amp;gt;If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with lmd[..], so using the filter lmd*.bpl for harddisk search should work. &amp;lt;br&amp;gt;Usually this problem occurs when a previous version was not removed completely. E.g. if you compiled sourcecode, Delphi places created runtime BPL's automatically into the default BPL output path (can be specified in Environment Options dialog). Older version may have installed them in System directory - so there is the possible version conflict.&amp;lt;br&amp;gt; To completely remove an old LMD-Tools version (the hard way):&lt;br /&gt;
&lt;br /&gt;
* Close Delphi / C++ IDE (Note: Be sure that you did not include any LMD VCL units in own packages, otherwise open these packages, remove LMD-Tools units and recompile them). &lt;br /&gt;
** Use all uninstallers for previous packages&lt;br /&gt;
** Delete all LMD-Tools directoies&lt;br /&gt;
** Delete all LMD-Tools path settings from Extras|Environment Options|Tab Library&lt;br /&gt;
** Now most important point: Search your harddisk (at least in your system directory&lt;br /&gt;
&lt;br /&gt;
and the Delphi Projects\BPL path) for LMD BPLs. Use as search string lmd*.bpl for runtime packages.&lt;br /&gt;
&lt;br /&gt;
* Use as search string dcllmd*.bpl for designtime packages.&lt;br /&gt;
* Remove them all&lt;br /&gt;
&lt;br /&gt;
After that try to reinstall original package or use sourcecode installer. To install LMD VCL sourcecode:&lt;br /&gt;
&lt;br /&gt;
* Use the source installer of your product&lt;br /&gt;
* After installation check whether paths to LMD VCL source files are correctly set. If for any reason not, add them yourself&lt;br /&gt;
* We have extremly simplified source compilation. Load the correct project group and compile one package after another. Install only designtime packages (dcllmd*.bpk). All compiled packages can be found after compilation in the Projects\BPL path of your IDE version.&lt;br /&gt;
&lt;br /&gt;
===== Packages not installed in a system path =====&lt;br /&gt;
&lt;br /&gt;
The second common reason is caused by the fact, that packages were installed into a non-system path. E.g. when you have specified a custom output folder for BPLs in your IDE settings, you must assure, that especially runtime packages are installed into a system path. Otherwise you will see packages when you install them, but with next start of BDS/IDE you get error that a specific package can not be found. In BDS or Codegear RAD Studio IDEs (Delphi 2005 and better) you can easily extend your PATH settings in Environment Settings|Environment Variables in Options dialog. Otherwise you need to modify PATH variable in system settings, if you don't want to use default BPL folder.&lt;br /&gt;
&lt;br /&gt;
=== [Fatal Error]: Unit XXXX was compiled with a different version of XXXXX ===&lt;br /&gt;
&lt;br /&gt;
''Example''&amp;lt;br&amp;gt;'''[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Reason''&amp;lt;br&amp;gt;A previous installation (trial, previous release) was not removed completely. This error message might also occur, when you try to use precompiled LMD VCL packages with Delphi/C++ Builder trials.&amp;amp;nbsp;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Solution''&amp;lt;br&amp;gt;Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read ''Uninstall'' section in installation guide.&lt;br /&gt;
&lt;br /&gt;
=== LMD[..].pas not found error / Version Mix Up ===&lt;br /&gt;
&lt;br /&gt;
If IDE claims that it can't find a file (though DCUs are available and Library Path is set correctly - see Environment Options), there are only a few possible causes for this problem:&lt;br /&gt;
&lt;br /&gt;
* Your IDE version is not compatible with precompiled LMD VCL package. Make sure that you do not use a Delphi / C++ Builder trial and that you have installed all required service packs of your IDE.&lt;br /&gt;
* Most probably this is a version mix up. For the offending files please check whether a previous version was completely uninstalled, that no parts are compiled into existing packages (e.g. your personal packages, you might have to rebuild the package) and that your project was REBUILD (to force the compilation of latest PAS/DCU files). Furthermore the project files may have references to older package files (especially if you use runtime packages, simply check Package settings in Project Options.&lt;br /&gt;
&lt;br /&gt;
=== LMD VCL Trials or SE releases do NOT work with Delphi / C++ Builder Trials! ===&lt;br /&gt;
&lt;br /&gt;
To make it short: &amp;amp;nbsp;You need a full version of C++ Builder/Delphi to run any precompiled version (Trial or SE). The VCL files in Borland Trials use a different DCU signature than full versions. &amp;lt;br&amp;gt;So many or almost all precompiled packages will fail to work on a C++ Builder/Delphi Trialversion. If you own a sourcecode version, then you can compile code as usual even in CodeGear trials.&lt;br /&gt;
&lt;br /&gt;
=== After installation (without errors) components do not appear on component palette ===&lt;br /&gt;
&lt;br /&gt;
Please check first in ''Install Components...'' dialog whether Package entries were created at all. If items are not available, packages have to be installed manually (check installation guide in \info folder). If items are available, but not checked: Check them to enable packages. If you receive error messages, IDE has no (or wrong) access to the runtime packages. Please check then whether installer has installed runtime packages correctly into your default output BPL folder. If runtime/designtime packages are missing, locate the files on your harddisk and copy them to the default folder and add them manually.&lt;br /&gt;
&lt;br /&gt;
==== BDS (Delphi 2005 and higher) specific problems ====&lt;br /&gt;
&lt;br /&gt;
===== Disabled Packages =====&lt;br /&gt;
&lt;br /&gt;
If components do not appear on component palette, though installation worked without problems: Please check wether IDE did not disable corresponding package entries (this may e.g. happen when during previous start of IDE runtime packages were not found). Alternatively you may check following registry key:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;_CURRENT_USER\Software\Borland\BDS\X.0\Disabled Packages&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''X.0''' specifies the BDS version, e.g. 3.0 for Delphi 2005, 4.0 for BDS 2006 and so on.&lt;br /&gt;
&lt;br /&gt;
===== Wrong Default Project Options =====&lt;br /&gt;
&lt;br /&gt;
Another possible cause of problems are wrong Default Project Options (custom default project options were set). Check Default Project Options in BDS in Project Menu (at the very end when no project is loaded) and especially review path and package settings. Especially remove packages from previous versions from the &amp;quot;Use runtime Packages&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
==== Localized BDS Versions ====&lt;br /&gt;
&lt;br /&gt;
'''For localized (german, japanes, french) Delphi/C++ Builder IDEs (from Delphi 2005 and higher) the identification of the default BPL output path may fail. If problem occurs, please copy files manually to the correct folder.'''&lt;br /&gt;
&lt;br /&gt;
==== Important Registry keys explained ====&lt;br /&gt;
&lt;br /&gt;
This section lists Delphi personality relevant registry keys:&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\X.0\Known Packages&lt;br /&gt;
&lt;br /&gt;
Lists all packages which should be loaded during&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Disabled Packages&lt;br /&gt;
&lt;br /&gt;
This key includes all packages which should be &amp;lt;u&amp;gt;NOT&amp;lt;/u&amp;gt; loaded, even if they are included in &amp;quot;Known Packages&amp;quot; key-&lt;br /&gt;
&lt;br /&gt;
* HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Library all search paths: &lt;br /&gt;
** Search Path: *.dcu, *.dcp, *.dfm etc. files&lt;br /&gt;
** Package DPL Search Path: *.bpl files&lt;br /&gt;
** Package DCP Search Path: *.dcp files&lt;br /&gt;
** Browsing Path: Source files&lt;br /&gt;
** Debug DCU Path (optional): Path to DCU files with debug information. Not used with LMD VCL products.&lt;br /&gt;
&lt;br /&gt;
== IDE ==&lt;br /&gt;
&lt;br /&gt;
=== Disappearing Components in VCL.NET packages ===&lt;br /&gt;
&lt;br /&gt;
Note: Problem seems to be limited to BDS 2006 / CRS 2007 or better&amp;lt;br&amp;gt;A few customers reported about a problem with disappearing components (reproducible in Installed .NET components... dialog) in VCL.NET personalitites. This problem is limited to a few assemblies only (RTLX, RichPack and LMD-Tools components). This problem had been investigated, we found problem is related to LMD Design Time assemblies which make use of CodeGear design time packages(located in the \Bin folder of your BDS/CRS installation folder).&amp;lt;br&amp;gt;Since '''LMD-Tools 8.10''' installers and package project files were changed (for LMD ElPack and LMD IDE-Tools as well). Changes are:&lt;br /&gt;
&lt;br /&gt;
* By default LMD DesignTime assemblies are now installed into the \Bin folder below BDS/CRS installation folder. This work around solve the problem.&lt;br /&gt;
* The designtime projects files also locate design time &amp;amp;nbsp;assemblies into \bin folder (see project options)&lt;br /&gt;
* If you don't want this behaviour (or if it is technically not possible, e.g. caused by security settings in Vista): &lt;br /&gt;
** For compiled packages: Choose in installer option to install designtime packages into library folder.&lt;br /&gt;
** For source packages: Change project options in designtime projects.&lt;br /&gt;
** In both cases: Add the \bin folder of your IDE installation to the Assembly search folder.&lt;br /&gt;
&lt;br /&gt;
=== Corrupted/screwed Component Palette ===&lt;br /&gt;
&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
''Answer 1:''&amp;lt;br&amp;gt;This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&amp;lt;br&amp;gt;There are several ways to workaround:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
# If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;''Answer 2:''&amp;lt;br&amp;gt;There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &amp;lt;br&amp;gt;Try these: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant)&lt;br /&gt;
# Start Delphi with the -ns switch&lt;br /&gt;
# Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)&lt;br /&gt;
# Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold.&lt;br /&gt;
# reduce the hardware acceleration for the card. (display-&amp;amp;gt;properties-&amp;amp;gt;settings-&amp;amp;gt;advances-&amp;amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3).&lt;br /&gt;
# Get the latest DirectX drivers.&lt;br /&gt;
# After Delphi is started, change the color depth (you can change it right back) of your video card. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &amp;lt;br&amp;gt;If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting.&lt;br /&gt;
&lt;br /&gt;
=== Help Index files disappear / AV's in CBuilder when starting help ===&lt;br /&gt;
&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
* To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
* Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
=== Debugger problem ===&lt;br /&gt;
&lt;br /&gt;
'''Problem: I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# The problem happens only within (older) IDEs (does not affect the executable).&lt;br /&gt;
# Get the projects #15804 and #16098 from [http://cc.codegear.com CodeGear Codecentral] and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
== Programming Techniques ==&lt;br /&gt;
&lt;br /&gt;
=== Unknown identifier during compilation ===&lt;br /&gt;
&lt;br /&gt;
You receive during compilation an ''&amp;quot;Unknown identifier...&amp;quot;'' for a procedure/function or type and you are certain that type name is correctly spelled. In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. To solve this problem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Mark the affected identifier in the code editor&lt;br /&gt;
# Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
# Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
# If helpfile does not deliver you unit name, search the interface files (or source files) for the typename and find out where the type name is declared. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
# Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
=== Accessing enumerated values at runtime ===&lt;br /&gt;
&lt;br /&gt;
You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like &amp;amp;lt;source&amp;amp;gt;[foAutoShow, foAutoCenter])&amp;amp;lt;/source&amp;amp;gt;, but you don't know how to achieve this at runtime.&amp;lt;br&amp;gt;The Options property of TLMDForm is used as example.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To ''check'' for a flag, use code as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
To ''enable'' or ''disable'' a specific flag, use following code: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; or &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Duplicate identifier during compilation ===&lt;br /&gt;
&lt;br /&gt;
''Situation''&amp;lt;br&amp;gt;You want to specify a new value to property at runtime. During compilation you receive an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&amp;lt;br&amp;gt;'''Example'''&amp;lt;br&amp;gt;You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g. &amp;lt;delphi&amp;gt;LMDDBNImage1.Style:=sbKeepAspRatio;&amp;lt;/delphi&amp;gt; You receive &amp;quot;Incompatible Types error -&amp;amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;''Solution''&amp;lt;br&amp;gt;Make sure that Compiler uses correct type defintion. To solve problem demonstrated in example: &amp;lt;br&amp;gt;You probably included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. &amp;lt;br&amp;gt;There are two ways to workaround this problem:&lt;br /&gt;
&lt;br /&gt;
# Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj)&lt;br /&gt;
# Add lmdgraph before the type name of the corresponding type to ensure that correct type is used, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDDBNImage1.Style := lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== E2134 Type 'TRect' has no type info ===&lt;br /&gt;
&lt;br /&gt;
It is caused by turning on the 'Emit runtime type information' flag in the compiler options. Apparently, using this flag will generate this error if the dcs's are compiled with different versions of the base units where these types are declared&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= If you upgrade from LMD-Tools 7 or earlier: =&lt;br /&gt;
&lt;br /&gt;
Unit changes several units were reorganized and removed from the packages. So you might encounter following problems when trying to compile an existing project:&lt;br /&gt;
&lt;br /&gt;
=== File not found errors for certain units&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Following units are no longer required in LMD-Tools:&amp;lt;br&amp;gt; lmdbredt.pas, lmdbtn.pas, lmdcctrl.pas, lmdcombo.pas, lmdcompo.pas, LMDComponent.pas, LMDCtrl.pas, lmdctrlA.pas, lmddbctA.pas, lmddbctr.pas, lmddlgS.pas, lmdeditb.pas, lmdeditc.pas, LMDEditM.pas, lmdextcA.pas, lmdextcS.pas, LMDGrapA.pas, lmdgroup.pas, LMDMemoC.pas, lmdmmS.pas, lmdnonvA.pas, lmdnonvS.pas, lmdnwgui.pas, lmdrctrl.pas, lmdrectutils.pas, lmdshapA.pas, LMDStdCA.pas, lmdstdcS.pas (for CBuilder user: .hpp/.cpp extension). If compiler complains about these files simply remove the unit from the uses clause. This is the recommended way.&amp;lt;br&amp;gt; Alternatively install the units from the source\deprecated (Delphi only, CBuilder user must always remove references). These units are actually empty but make compiler happy.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;br&amp;gt; Other changes&amp;lt;br&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
The style for TLMDCustomButton and TLMDCustomSpeedButton (and controls using internal SpeedButtons) is now specified by the ButtonStyle property.&amp;lt;br&amp;gt;In addition the ubsWinXP, ubsWinXPCombo, ubsWinXPTool and ubsAutoDetect styles were removed, because CtlXP property (which is activated by default) is now supported by buttons. In most cases you need not to take care of this change, because we handle conversion automatically. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_Packs&amp;diff=3838</id>
		<title>LMD VCL - LMD Packs</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_Packs&amp;diff=3838"/>
				<updated>2017-08-18T12:10:53Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==LMD ShellPack==&lt;br /&gt;
===Using Paste/Copy commands at runtime===&lt;br /&gt;
Copy:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if assigned(LMDShellList1.selected) then&lt;br /&gt;
  LMDDoContextMenuVerb( LMDShellList1, (LMDShellList1.Selected as TLMDShellListItem).ShellItem, 'copy');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Paste:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDDoContextMenuVerb( LMDShellList2, LMDShellFolder2.ActiveFolder,'paste');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LMD RichPack==&lt;br /&gt;
&lt;br /&gt;
===Which MS RichEdit DLL Version can I expect on a specific operating system?===&lt;br /&gt;
Please check list of different [http://blogs.msdn.com/murrays/archive/2006/10/14/richedit-versions.aspx RichEdit versions].&lt;br /&gt;
&lt;br /&gt;
===Searching for specific attributes===&lt;br /&gt;
Q: I was trying out the LMD RTF wrapper (using BCB 6) and wanted to know what would be the best way to search for words or characters with a specific attribute.&lt;br /&gt;
A: &amp;lt;br&amp;gt;&lt;br /&gt;
* Use FindTextEx&lt;br /&gt;
* Check SelAttributes&amp;lt;br&amp;gt;if attrs not ok then FindTextEx again.&lt;br /&gt;
&lt;br /&gt;
==LMD WebPack==&lt;br /&gt;
===[Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from===&lt;br /&gt;
Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). In recent IDEs you can also add&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma link &amp;quot;wininet.lib&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; in your code.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_Packs&amp;diff=3837</id>
		<title>LMD VCL - LMD Packs</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_Packs&amp;diff=3837"/>
				<updated>2017-08-18T12:10:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==LMD ShellPack==&lt;br /&gt;
===Using Paste/Copy commands at runtime===&lt;br /&gt;
Copy:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if assigned(LMDShellList1.selected) then&lt;br /&gt;
  LMDDoContextMenuVerb( LMDShellList1, (LMDShellList1.Selected as TLMDShellListItem).ShellItem, 'copy');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Paste:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDDoContextMenuVerb( LMDShellList2, LMDShellFolder2.ActiveFolder,'paste');&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LMD RichPack==&lt;br /&gt;
&lt;br /&gt;
===Which MS RichEdit DLL Version can I expect on a specific operating system?===&lt;br /&gt;
Please check list of different [http://blogs.msdn.com/murrays/archive/2006/10/14/richedit-versions.aspx RichEdit versions].&lt;br /&gt;
&lt;br /&gt;
===Searching for specific attributes===&lt;br /&gt;
Q: I was trying out the LMD RTF wrapper (using BCB 6) and wanted to know what would be the best way to search for words or characters with a specific attribute.&lt;br /&gt;
A: &amp;lt;br&amp;gt;&lt;br /&gt;
* Use FindTextEx&lt;br /&gt;
* Check SelAttributes&amp;lt;br&amp;gt;if attrs not ok then FindTextEx again.&lt;br /&gt;
&lt;br /&gt;
==LMD WebPack==&lt;br /&gt;
===[Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from===&lt;br /&gt;
Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). In recent IDEs you can also add&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma link &amp;quot;wininet.lib&amp;quot;&lt;br /&gt;
#&amp;lt;/syntaxhighlight&amp;gt; in your code.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3836</id>
		<title>LMD VCL - LMD-Tools FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3836"/>
				<updated>2017-08-18T12:08:26Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
=== C++ Builder Notes ===&lt;br /&gt;
* WebPack: If you encounter linker errors like [Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from... Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). &lt;br /&gt;
* TextPack: When Runtime Packages are used (Project options, &amp;quot;Build with runtime packages&amp;quot;), it must be assured that lmdparse4rt_XX (XX represents the compiler version) is mentioned before the TextPack packages. Otherwise an exception during application start will occur.&lt;br /&gt;
* TLMDHideNonVC: This component has no functionality in LMD-Tools for CBuilder 5 (and higher) and is included for the sake of compatibility only. Please do not use this component in C++  Builder projects. &lt;br /&gt;
* TLMDFormDisplay: The AddForm method of TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;br /&gt;
&lt;br /&gt;
=== C++Builder: &amp;quot;[dcc32 Error] LMDXML.pas(478): E2134 Type '&amp;lt;void&amp;gt;' has no type info&amp;quot; ===&lt;br /&gt;
Please turn off “Emit runtime type info” in compiler options to make code work.&lt;br /&gt;
&lt;br /&gt;
=== Packages &amp;amp; Compatibility ===&lt;br /&gt;
==== Compatibility Components are not installed by default! ====&lt;br /&gt;
User who you used the older components of version 1/3 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Please note:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
==== ToolBar97 components ==== &lt;br /&gt;
The &amp;lt;b&amp;gt;registered&amp;lt;/b&amp;gt; VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
==LMD-Tools==&lt;br /&gt;
===TLMDCaptionPanel (-Group)===&lt;br /&gt;
==== Pasting components from ClipBoard not possible ====&lt;br /&gt;
Because of a glitch with inner controls pasting components from clipboard onto TLMDCaptionPanel components is not possible (controls will be simply not visible). However there is a simple workaround. &lt;br /&gt;
In context menu of form select &amp;quot;View as Text&amp;quot; and move the object data within the PanelClient object of TLMDCaptionPanel directly in DFM code. Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1] This is an empty TLMDCaptionPanel&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[2] Move component data between &amp;quot;object TLMDCaptionPanelClient&amp;quot; and &amp;quot;end&amp;quot;, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
      object Button1: TButton&lt;br /&gt;
        Left = 80&lt;br /&gt;
        Top = 40&lt;br /&gt;
        Width = 75&lt;br /&gt;
        Height = 25&lt;br /&gt;
        Caption = 'Button1'&lt;br /&gt;
        TabOrder = 0&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLMDFormDisplay ===&lt;br /&gt;
==== How to access specific controls on displayed forms? ====&lt;br /&gt;
To access controls on forms displayed in a TLMDFormDisplay component you have to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1, you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Reason&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
&lt;br /&gt;
=== TLMDOneInstance ===&lt;br /&gt;
==== Flickering of main window when second instance is started. ====&lt;br /&gt;
There are two ways to workaround this:&lt;br /&gt;
* You create a small separate application which has nothing else to do except closing the current instance and restarting it..&lt;br /&gt;
* You do not use the component but internal functions of LMD-Tools (more complex, but elegant). &lt;br /&gt;
To mimic TLMDOneInstance without using the control: In the project source file add LMDClass unit to uses clause and check LMDApplication.IsPrevRunning property before any form is loaded (this global property tells you, whether a previous instance is running). If yes, simple exit the application and call LMDActivatePrevInstance method from LMDUtils.pas to activate the already running instance. &lt;br /&gt;
To explicitely allow restart simply use a command line parameter, so that test for previous instance is skipped when command line parameter is set.&lt;br /&gt;
&lt;br /&gt;
=== TLMDTrayIcon ===&lt;br /&gt;
==== Starting a trayicon application in hidden state ====&lt;br /&gt;
The TrayIcon demo from version LMD-Tools 8.10 on (check &amp;lt;b&amp;gt;lmdtools\Other\LMD Sys\LMDTrayIcon&amp;lt;/b&amp;gt; in demos folder) demonstrates this feature (trayicon in taskbar is visible only). To achieve this feature, the project sourcecode must be altered as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Before Delphi/CRS 2007&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Delphi/CRS 2007 and higher&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  if LMDSIWindowsVistaUp then&lt;br /&gt;
    Application.MainFormOnTaskBar := true;  // not required, but supported since 8.10 (--&amp;gt; Aero Glass)&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Form1.trayicon.HideApplication;&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Recent Delphi releases require additional code (caused by correct Vista support and the new MainFormOnTaskBar feature).&lt;br /&gt;
=== Container Controls ===&lt;br /&gt;
==== How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ====&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&amp;lt;br&amp;gt;&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property. &lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDStringList1[myIndex].Items:=myExternalVCLStringList;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Insert(2, nil);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dialog Controls ===&lt;br /&gt;
&lt;br /&gt;
==== Using OnCustomize event in native LMD Dialog controls ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure TForm1.dCustomize(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
i:Integer;&lt;br /&gt;
begin&lt;br /&gt;
with TForm(Sender) do&lt;br /&gt;
 for i:=0 to ComponentCount-1 do&lt;br /&gt;
 if (Components[i] is TLMDButton) and (TLMDButton(Components[i]).Caption='&amp;amp;amp;New Folder') then&lt;br /&gt;
 TLMDButton(Components[i]).Caption:='MyString';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Some notes on Unicode issues ===&lt;br /&gt;
&lt;br /&gt;
Since release 10.05 unicode support was added in LMD Tools. Since that moment labels, buttons, edit controls of LMD Tools could display/edit unicode text. The main change were made to LMDGraphUtils, where two methods were changed: LMDDrawTextExt and LMDDrawTextCalcExt. Before release 10.05 they used DrawTextEx only; since release 10.05 they use DrawTextExW if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This caused a side effect: some applications that worked correctly in ANSI version (those that used non-latin charsets), do not work if LMD_UNICODE is defined, e.g. following code resulted incorrect captions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDButton1.Font.Charset:=ARABIC_CHARSET;&lt;br /&gt;
 LMDButton1.Caption&amp;amp;nbsp;:= #NN#NN#NN#NN; //#NN are some byte values - codes of symbols&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In release 10.10 we added ForceANSI property in TLMDApplication class. Setting this property to true enforces calling ANSI version of DrawTextEx in LMD Tools text drawing routines even if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This allows to use ANSI in LMD Tools and UNICODE in ElPack at the same time.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For Delphi 2009 and upper versions, LMD_UNICODE is always defined.&lt;br /&gt;
&lt;br /&gt;
=== Some notes on using DB-aware controls ===&lt;br /&gt;
&lt;br /&gt;
==== LMDDBSpinEdit and LMDDBExtSpinEdit: MinValue and MaxValue issues ====&lt;br /&gt;
&lt;br /&gt;
In 10.14 release TLMDDBSpinEdit and TLMDDBExtSpinEdit received two new boolean properties: UseDBMinMax and  UseZeroLogic. Both are set to true by default for compatibility. These flags were introduced because of some peculiarities of using MinValue and MaxValue in db-aware spin edits.&lt;br /&gt;
&lt;br /&gt;
The help topic on TIntegerField states:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If the value of MaxValue is 0, the integer field can have a value up to the maximum value that can be represented by the native database type.&lt;br /&gt;
...&lt;br /&gt;
If the value of MinValue is 0, the integer field can have a value as small as the native database type can represent.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This logic has immanent drawback which causes usage of some intervals impossible: e.g. we cannot use [0, N], or [-N, 0] intervals, because zeros removes the constraint.&lt;br /&gt;
Another issue is that MinValue and MaxValue not always can be read from database field definitions. &lt;br /&gt;
&lt;br /&gt;
If UseDBMinMax is set to true, then MinValue and MaxValue properties are overriden from field properties. Otherwise, they will have values set by programmer in designtime or runtime.&lt;br /&gt;
&lt;br /&gt;
If UseZeroLogic is set to true, then zeros remove constraints, allowing maximum positive value if MaxValue = 0, and minimum negative value if MinValue = 0.  If UseZeroLogic is false, then MinValue = 0 means that no negative values are allowed and, respectively, MaxValue = 0 means that no positive values are allowed. When UseZeroLogic is false, programmer can use boolean flags InfiniteMin and InfiniteMax to remove min-max constraints.&lt;br /&gt;
&lt;br /&gt;
=== ListIndex vs. ImageIndex property ===&lt;br /&gt;
&lt;br /&gt;
Since LMD Tools 2012.1, ImageIndex property is used instead of ListIndex in TLMDBaseGraphicButton to define image taken from imagelist.&lt;br /&gt;
&lt;br /&gt;
This is made to make usage of two-dimensional imagelists consistent with one-dimensional imagelists.&lt;br /&gt;
&lt;br /&gt;
If you want to force former use of ListIndex in TLMDBaseGraphicButton, locate {.$DEFINE LMD_FORCELISTINDEXUSE} entry in lmdcmps.inc file and remove dot. In this case ListIndex will be used to define image index in one-dimensional imagelists like TLMDBitmapList, TLMDGraphicList etc, like it was in versions prior to LMD Tools 2012.1.&lt;br /&gt;
&lt;br /&gt;
== LMD TextPack ==&lt;br /&gt;
&lt;br /&gt;
==== Using embedded controls in LMDTextPanel ====&lt;br /&gt;
&lt;br /&gt;
'''Question'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I use html parser in LMDTextPanel control. The text is an HTML code like that&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control vclclass=TButton name=&amp;quot;b1&amp;quot; Caption=&amp;quot;Hello&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;control vclclass=TLMDEdit name=&amp;quot;e1&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why the embedded TLMDEdit control is now shown in runtime?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use TEdit, TButton, TCheckBox, TRadioButton as embedded controls without any additional code, because these classes are automatically registered in constructor TLMDEmbdControl.Create.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can use any other control TSomeControl provided that RegisterClass(TSomeControl) was called prior to html parsing.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, your code will work fine if you add LMDEdit to uses clause and code RegisterClass(TLMDEdit) in FormCreate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note for C++ Builder users:&lt;br /&gt;
&lt;br /&gt;
    Use RegisterClass('''__classid'''(TLMDEdit)) &lt;br /&gt;
&lt;br /&gt;
instead of &lt;br /&gt;
&lt;br /&gt;
    RegisterClass(TLMDEdit).&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3835</id>
		<title>LMD VCL - LMD-Tools FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3835"/>
				<updated>2017-08-18T12:07:06Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
=== C++ Builder Notes ===&lt;br /&gt;
* WebPack: If you encounter linker errors like [Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from... Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). &lt;br /&gt;
* TextPack: When Runtime Packages are used (Project options, &amp;quot;Build with runtime packages&amp;quot;), it must be assured that lmdparse4rt_XX (XX represents the compiler version) is mentioned before the TextPack packages. Otherwise an exception during application start will occur.&lt;br /&gt;
* TLMDHideNonVC: This component has no functionality in LMD-Tools for CBuilder 5 (and higher) and is included for the sake of compatibility only. Please do not use this component in C++  Builder projects. &lt;br /&gt;
* TLMDFormDisplay: The AddForm method of TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;br /&gt;
&lt;br /&gt;
=== C++Builder: &amp;quot;[dcc32 Error] LMDXML.pas(478): E2134 Type '&amp;lt;void&amp;gt;' has no type info&amp;quot; ===&lt;br /&gt;
Please turn off “Emit runtime type info” in compiler options to make code work.&lt;br /&gt;
&lt;br /&gt;
=== Packages &amp;amp; Compatibility ===&lt;br /&gt;
==== Compatibility Components are not installed by default! ====&lt;br /&gt;
User who you used the older components of version 1/3 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Please note:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
==== ToolBar97 components ==== &lt;br /&gt;
The &amp;lt;b&amp;gt;registered&amp;lt;/b&amp;gt; VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
==LMD-Tools==&lt;br /&gt;
===TLMDCaptionPanel (-Group)===&lt;br /&gt;
==== Pasting components from ClipBoard not possible ====&lt;br /&gt;
Because of a glitch with inner controls pasting components from clipboard onto TLMDCaptionPanel components is not possible (controls will be simply not visible). However there is a simple workaround. &lt;br /&gt;
In context menu of form select &amp;quot;View as Text&amp;quot; and move the object data within the PanelClient object of TLMDCaptionPanel directly in DFM code. Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1] This is an empty TLMDCaptionPanel&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[2] Move component data between &amp;quot;object TLMDCaptionPanelClient&amp;quot; and &amp;quot;end&amp;quot;, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
      object Button1: TButton&lt;br /&gt;
        Left = 80&lt;br /&gt;
        Top = 40&lt;br /&gt;
        Width = 75&lt;br /&gt;
        Height = 25&lt;br /&gt;
        Caption = 'Button1'&lt;br /&gt;
        TabOrder = 0&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLMDFormDisplay ===&lt;br /&gt;
==== How to access specific controls on displayed forms? ====&lt;br /&gt;
To access controls on forms displayed in a TLMDFormDisplay component you have to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1, you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Reason&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
&lt;br /&gt;
=== TLMDOneInstance ===&lt;br /&gt;
==== Flickering of main window when second instance is started. ====&lt;br /&gt;
There are two ways to workaround this:&lt;br /&gt;
* You create a small separate application which has nothing else to do except closing the current instance and restarting it..&lt;br /&gt;
* You do not use the component but internal functions of LMD-Tools (more complex, but elegant). &lt;br /&gt;
To mimic TLMDOneInstance without using the control: In the project source file add LMDClass unit to uses clause and check LMDApplication.IsPrevRunning property before any form is loaded (this global property tells you, whether a previous instance is running). If yes, simple exit the application and call LMDActivatePrevInstance method from LMDUtils.pas to activate the already running instance. &lt;br /&gt;
To explicitely allow restart simply use a command line parameter, so that test for previous instance is skipped when command line parameter is set.&lt;br /&gt;
&lt;br /&gt;
=== TLMDTrayIcon ===&lt;br /&gt;
==== Starting a trayicon application in hidden state ====&lt;br /&gt;
The TrayIcon demo from version LMD-Tools 8.10 on (check &amp;lt;b&amp;gt;lmdtools\Other\LMD Sys\LMDTrayIcon&amp;lt;/b&amp;gt; in demos folder) demonstrates this feature (trayicon in taskbar is visible only). To achieve this feature, the project sourcecode must be altered as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Before Delphi/CRS 2007&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Delphi/CRS 2007 and higher&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  if LMDSIWindowsVistaUp then&lt;br /&gt;
    Application.MainFormOnTaskBar := true;  // not required, but supported since 8.10 (--&amp;gt; Aero Glass)&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Form1.trayicon.HideApplication;&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Recent Delphi releases require additional code (caused by correct Vista support and the new MainFormOnTaskBar feature).&lt;br /&gt;
=== Container Controls ===&lt;br /&gt;
==== How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ====&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&amp;lt;br&amp;gt;&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property. &lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDStringList1[myIndex].Items:=myExternalVCLStringList;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Insert(2, nil);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dialog Controls ===&lt;br /&gt;
&lt;br /&gt;
==== Using OnCustomize event in native LMD Dialog controls ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure TForm1.dCustomize(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
i:Integer;&lt;br /&gt;
begin&lt;br /&gt;
with TForm(Sender) do&lt;br /&gt;
 for i:=0 to ComponentCount-1 do&lt;br /&gt;
 if (Components[i] is TLMDButton) and (TLMDButton(Components[i]).Caption='&amp;amp;amp;New Folder') then&lt;br /&gt;
 TLMDButton(Components[i]).Caption:='MyString';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Some notes on Unicode issues ===&lt;br /&gt;
&lt;br /&gt;
Since release 10.05 unicode support was added in LMD Tools. Since that moment labels, buttons, edit controls of LMD Tools could display/edit unicode text. The main change were made to LMDGraphUtils, where two methods were changed: LMDDrawTextExt and LMDDrawTextCalcExt. Before release 10.05 they used DrawTextEx only; since release 10.05 they use DrawTextExW if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This caused a side effect: some applications that worked correctly in ANSI version (those that used non-latin charsets), do not work if LMD_UNICODE is defined, e.g. following code resulted incorrect captions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDButton1.Font.Charset:=ARABIC_CHARSET;&lt;br /&gt;
 LMDButton1.Caption&amp;amp;nbsp;:= #NN#NN#NN#NN; //#NN are some byte values - codes of symbols&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In release 10.10 we added ForceANSI property in TLMDApplication class. Setting this property to true enforces calling ANSI version of DrawTextEx in LMD Tools text drawing routines even if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This allows to use ANSI in LMD Tools and UNICODE in ElPack at the same time.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For Delphi 2009 and upper versions, LMD_UNICODE is always defined.&lt;br /&gt;
&lt;br /&gt;
=== Some notes on using DB-aware controls ===&lt;br /&gt;
&lt;br /&gt;
==== LMDDBSpinEdit and LMDDBExtSpinEdit: MinValue and MaxValue issues ====&lt;br /&gt;
&lt;br /&gt;
In 10.14 release TLMDDBSpinEdit and TLMDDBExtSpinEdit received two new boolean properties: UseDBMinMax and  UseZeroLogic. Both are set to true by default for compatibility. These flags were introduced because of some peculiarities of using MinValue and MaxValue in db-aware spin edits.&lt;br /&gt;
&lt;br /&gt;
The help topic on TIntegerField states:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If the value of MaxValue is 0, the integer field can have a value up to the maximum value that can be represented by the native database type.&lt;br /&gt;
...&lt;br /&gt;
If the value of MinValue is 0, the integer field can have a value as small as the native database type can represent.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This logic has immanent drawback which causes usage of some intervals impossible: e.g. we cannot use [0, N], or [-N, 0] intervals, because zeros removes the constraint.&lt;br /&gt;
Another issue is that MinValue and MaxValue not always can be read from database field definitions. &lt;br /&gt;
&lt;br /&gt;
If UseDBMinMax is set to true, then MinValue and MaxValue properties are overriden from field properties. Otherwise, they will have values set by programmer in designtime or runtime.&lt;br /&gt;
&lt;br /&gt;
If UseZeroLogic is set to true, then zeros remove constraints, allowing maximum positive value if MaxValue = 0, and minimum negative value if MinValue = 0.  If UseZeroLogic is false, then MinValue = 0 means that no negative values are allowed and, respectively, MaxValue = 0 means that no positive values are allowed. When UseZeroLogic is false, programmer can use boolean flags InfiniteMin and InfiniteMax to remove min-max constraints.&lt;br /&gt;
&lt;br /&gt;
=== ListIndex vs. ImageIndex property ===&lt;br /&gt;
&lt;br /&gt;
Since LMD Tools 2012.1, ImageIndex property is used instead of ListIndex in TLMDBaseGraphicButton to define image taken from imagelist.&lt;br /&gt;
&lt;br /&gt;
This is made to make usage of two-dimensional imagelists consistent with one-dimensional imagelists.&lt;br /&gt;
&lt;br /&gt;
If you want to force former use of ListIndex in TLMDBaseGraphicButton, locate {.$DEFINE LMD_FORCELISTINDEXUSE} entry in lmdcmps.inc file and remove dot. In this case ListIndex will be used to define image index in one-dimensional imagelists like TLMDBitmapList, TLMDGraphicList etc, like it was in versions prior to LMD Tools 2012.1.&lt;br /&gt;
&lt;br /&gt;
== LMD TextPack ==&lt;br /&gt;
&lt;br /&gt;
==== Using embedded controls in LMDTextPanel ====&lt;br /&gt;
&lt;br /&gt;
'''Question'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I use html parser in LMDTextPanel control. The text is an HTML code like that&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control vclclass=TButton name=&amp;quot;b1&amp;quot; Caption=&amp;quot;Hello&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;control vclclass=TLMDEdit name=&amp;quot;e1&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why the embedded TLMDEdit control is now shown in runtime?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use TEdit, TButton, TCheckBox, TRadioButton as embedded controls without any additional code, because these classes are automatically registered in constructor TLMDEmbdControl.Create.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can use any other control TSomeControl provided that RegisterClass(TSomeControl) was called prior to html parsing.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, your code will work fine if you add LMDEdit to uses clause and code RegisterClass(TLMDEdit) in FormCreate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note for C++ Builder users: &amp;lt;br&amp;gt;Use RegisterClass('''__classid'''(TLMDEdit)) instead of RegisterClass(TLMDEdit).&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3834</id>
		<title>LMD VCL - LMD-Tools FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3834"/>
				<updated>2017-08-18T12:06:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
=== C++ Builder Notes ===&lt;br /&gt;
* WebPack: If you encounter linker errors like [Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from... Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). &lt;br /&gt;
* TextPack: When Runtime Packages are used (Project options, &amp;quot;Build with runtime packages&amp;quot;), it must be assured that lmdparse4rt_XX (XX represents the compiler version) is mentioned before the TextPack packages. Otherwise an exception during application start will occur.&lt;br /&gt;
* TLMDHideNonVC: This component has no functionality in LMD-Tools for CBuilder 5 (and higher) and is included for the sake of compatibility only. Please do not use this component in C++  Builder projects. &lt;br /&gt;
* TLMDFormDisplay: The AddForm method of TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;br /&gt;
&lt;br /&gt;
=== C++Builder: &amp;quot;[dcc32 Error] LMDXML.pas(478): E2134 Type '&amp;lt;void&amp;gt;' has no type info&amp;quot; ===&lt;br /&gt;
Please turn off “Emit runtime type info” in compiler options to make code work.&lt;br /&gt;
&lt;br /&gt;
=== Packages &amp;amp; Compatibility ===&lt;br /&gt;
==== Compatibility Components are not installed by default! ====&lt;br /&gt;
User who you used the older components of version 1/3 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Please note:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
==== ToolBar97 components ==== &lt;br /&gt;
The &amp;lt;b&amp;gt;registered&amp;lt;/b&amp;gt; VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
==LMD-Tools==&lt;br /&gt;
===TLMDCaptionPanel (-Group)===&lt;br /&gt;
==== Pasting components from ClipBoard not possible ====&lt;br /&gt;
Because of a glitch with inner controls pasting components from clipboard onto TLMDCaptionPanel components is not possible (controls will be simply not visible). However there is a simple workaround. &lt;br /&gt;
In context menu of form select &amp;quot;View as Text&amp;quot; and move the object data within the PanelClient object of TLMDCaptionPanel directly in DFM code. Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1] This is an empty TLMDCaptionPanel&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[2] Move component data between &amp;quot;object TLMDCaptionPanelClient&amp;quot; and &amp;quot;end&amp;quot;, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
      object Button1: TButton&lt;br /&gt;
        Left = 80&lt;br /&gt;
        Top = 40&lt;br /&gt;
        Width = 75&lt;br /&gt;
        Height = 25&lt;br /&gt;
        Caption = 'Button1'&lt;br /&gt;
        TabOrder = 0&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLMDFormDisplay ===&lt;br /&gt;
==== How to access specific controls on displayed forms? ====&lt;br /&gt;
To access controls on forms displayed in a TLMDFormDisplay component you have to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1, you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Reason&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
&lt;br /&gt;
=== TLMDOneInstance ===&lt;br /&gt;
==== Flickering of main window when second instance is started. ====&lt;br /&gt;
There are two ways to workaround this:&lt;br /&gt;
* You create a small separate application which has nothing else to do except closing the current instance and restarting it..&lt;br /&gt;
* You do not use the component but internal functions of LMD-Tools (more complex, but elegant). &lt;br /&gt;
To mimic TLMDOneInstance without using the control: In the project source file add LMDClass unit to uses clause and check LMDApplication.IsPrevRunning property before any form is loaded (this global property tells you, whether a previous instance is running). If yes, simple exit the application and call LMDActivatePrevInstance method from LMDUtils.pas to activate the already running instance. &lt;br /&gt;
To explicitely allow restart simply use a command line parameter, so that test for previous instance is skipped when command line parameter is set.&lt;br /&gt;
&lt;br /&gt;
=== TLMDTrayIcon ===&lt;br /&gt;
==== Starting a trayicon application in hidden state ====&lt;br /&gt;
The TrayIcon demo from version LMD-Tools 8.10 on (check &amp;lt;b&amp;gt;lmdtools\Other\LMD Sys\LMDTrayIcon&amp;lt;/b&amp;gt; in demos folder) demonstrates this feature (trayicon in taskbar is visible only). To achieve this feature, the project sourcecode must be altered as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Before Delphi/CRS 2007&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Delphi/CRS 2007 and higher&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  if LMDSIWindowsVistaUp then&lt;br /&gt;
    Application.MainFormOnTaskBar := true;  // not required, but supported since 8.10 (--&amp;gt; Aero Glass)&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Form1.trayicon.HideApplication;&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Recent Delphi releases require additional code (caused by correct Vista support and the new MainFormOnTaskBar feature).&lt;br /&gt;
=== Container Controls ===&lt;br /&gt;
==== How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ====&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&amp;lt;br&amp;gt;&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property. &lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDStringList1[myIndex].Items:=myExternalVCLStringList;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Insert(2, nil);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dialog Controls ===&lt;br /&gt;
&lt;br /&gt;
==== Using OnCustomize event in native LMD Dialog controls ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure TForm1.dCustomize(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
i:Integer;&lt;br /&gt;
begin&lt;br /&gt;
with TForm(Sender) do&lt;br /&gt;
 for i:=0 to ComponentCount-1 do&lt;br /&gt;
 if (Components[i] is TLMDButton) and (TLMDButton(Components[i]).Caption='&amp;amp;amp;New Folder') then&lt;br /&gt;
 TLMDButton(Components[i]).Caption:='MyString';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Some notes on Unicode issues ===&lt;br /&gt;
&lt;br /&gt;
Since release 10.05 unicode support was added in LMD Tools. Since that moment labels, buttons, edit controls of LMD Tools could display/edit unicode text. The main change were made to LMDGraphUtils, where two methods were changed: LMDDrawTextExt and LMDDrawTextCalcExt. Before release 10.05 they used DrawTextEx only; since release 10.05 they use DrawTextExW if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This caused a side effect: some applications that worked correctly in ANSI version (those that used non-latin charsets), do not work if LMD_UNICODE is defined, e.g. following code resulted incorrect captions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDButton1.Font.Charset:=ARABIC_CHARSET;&lt;br /&gt;
 LMDButton1.Caption&amp;amp;nbsp;:= #NN#NN#NN#NN; //#NN are some byte values - codes of symbols&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In release 10.10 we added ForceANSI property in TLMDApplication class. Setting this property to true enforces calling ANSI version of DrawTextEx in LMD Tools text drawing routines even if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This allows to use ANSI in LMD Tools and UNICODE in ElPack at the same time.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For Delphi 2009 and upper versions, LMD_UNICODE is always defined.&lt;br /&gt;
&lt;br /&gt;
=== Some notes on using DB-aware controls ===&lt;br /&gt;
&lt;br /&gt;
==== LMDDBSpinEdit and LMDDBExtSpinEdit: MinValue and MaxValue issues ====&lt;br /&gt;
&lt;br /&gt;
In 10.14 release TLMDDBSpinEdit and TLMDDBExtSpinEdit received two new boolean properties: UseDBMinMax and  UseZeroLogic. Both are set to true by default for compatibility. These flags were introduced because of some peculiarities of using MinValue and MaxValue in db-aware spin edits.&lt;br /&gt;
&lt;br /&gt;
The help topic on TIntegerField states:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If the value of MaxValue is 0, the integer field can have a value up to the maximum value that can be represented by the native database type.&lt;br /&gt;
...&lt;br /&gt;
If the value of MinValue is 0, the integer field can have a value as small as the native database type can represent.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This logic has immanent drawback which causes usage of some intervals impossible: e.g. we cannot use [0, N], or [-N, 0] intervals, because zeros removes the constraint.&lt;br /&gt;
Another issue is that MinValue and MaxValue not always can be read from database field definitions. &lt;br /&gt;
&lt;br /&gt;
If UseDBMinMax is set to true, then MinValue and MaxValue properties are overriden from field properties. Otherwise, they will have values set by programmer in designtime or runtime.&lt;br /&gt;
&lt;br /&gt;
If UseZeroLogic is set to true, then zeros remove constraints, allowing maximum positive value if MaxValue = 0, and minimum negative value if MinValue = 0.  If UseZeroLogic is false, then MinValue = 0 means that no negative values are allowed and, respectively, MaxValue = 0 means that no positive values are allowed. When UseZeroLogic is false, programmer can use boolean flags InfiniteMin and InfiniteMax to remove min-max constraints.&lt;br /&gt;
&lt;br /&gt;
=== ListIndex vs. ImageIndex property ===&lt;br /&gt;
&lt;br /&gt;
Since LMD Tools 2012.1, ImageIndex property is used instead of ListIndex in TLMDBaseGraphicButton to define image taken from imagelist.&lt;br /&gt;
&lt;br /&gt;
This is made to make usage of two-dimensional imagelists consistent with one-dimensional imagelists.&lt;br /&gt;
&lt;br /&gt;
If you want to force former use of ListIndex in TLMDBaseGraphicButton, locate {.$DEFINE LMD_FORCELISTINDEXUSE} entry in lmdcmps.inc file and remove dot. In this case ListIndex will be used to define image index in one-dimensional imagelists like TLMDBitmapList, TLMDGraphicList etc, like it was in versions prior to LMD Tools 2012.1.&lt;br /&gt;
&lt;br /&gt;
== LMD TextPack ==&lt;br /&gt;
&lt;br /&gt;
==== Using embedded controls in LMDTextPanel ====&lt;br /&gt;
&lt;br /&gt;
'''Question'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I use html parser in LMDTextPanel control. The text is an HTML code like that&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control vclclass=TButton name=&amp;quot;b1&amp;quot; Caption=&amp;quot;Hello&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot;&amp;gt; &amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;control vclclass=TLMDEdit name=&amp;quot;e1&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why the embedded TLMDEdit control is now shown in runtime?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use TEdit, TButton, TCheckBox, TRadioButton as embedded controls without any additional code, because these classes are automatically registered in constructor TLMDEmbdControl.Create.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can use any other control TSomeControl provided that RegisterClass(TSomeControl) was called prior to html parsing.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, your code will work fine if you add LMDEdit to uses clause and code RegisterClass(TLMDEdit) in FormCreate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note for C++ Builder users: &amp;lt;br&amp;gt;Use RegisterClass('''__classid'''(TLMDEdit)) instead of RegisterClass(TLMDEdit).&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3833</id>
		<title>LMD VCL - LMD-Tools FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD-Tools_FAQ&amp;diff=3833"/>
				<updated>2017-08-18T12:05:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}} [[Category:FAQ]] [[Category:LMD-Tools]] &lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
=== C++ Builder Notes ===&lt;br /&gt;
* WebPack: If you encounter linker errors like [Linker Error] Unresolved external &amp;quot;InternetCloseHandle&amp;quot; referenced from... Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). &lt;br /&gt;
* TextPack: When Runtime Packages are used (Project options, &amp;quot;Build with runtime packages&amp;quot;), it must be assured that lmdparse4rt_XX (XX represents the compiler version) is mentioned before the TextPack packages. Otherwise an exception during application start will occur.&lt;br /&gt;
* TLMDHideNonVC: This component has no functionality in LMD-Tools for CBuilder 5 (and higher) and is included for the sake of compatibility only. Please do not use this component in C++  Builder projects. &lt;br /&gt;
* TLMDFormDisplay: The AddForm method of TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;br /&gt;
&lt;br /&gt;
=== C++Builder: &amp;quot;[dcc32 Error] LMDXML.pas(478): E2134 Type '&amp;lt;void&amp;gt;' has no type info&amp;quot; ===&lt;br /&gt;
Please turn off “Emit runtime type info” in compiler options to make code work.&lt;br /&gt;
&lt;br /&gt;
=== Packages &amp;amp; Compatibility ===&lt;br /&gt;
==== Compatibility Components are not installed by default! ====&lt;br /&gt;
User who you used the older components of version 1/3 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Please note:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt; No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
==== ToolBar97 components ==== &lt;br /&gt;
The &amp;lt;b&amp;gt;registered&amp;lt;/b&amp;gt; VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
==LMD-Tools==&lt;br /&gt;
===TLMDCaptionPanel (-Group)===&lt;br /&gt;
==== Pasting components from ClipBoard not possible ====&lt;br /&gt;
Because of a glitch with inner controls pasting components from clipboard onto TLMDCaptionPanel components is not possible (controls will be simply not visible). However there is a simple workaround. &lt;br /&gt;
In context menu of form select &amp;quot;View as Text&amp;quot; and move the object data within the PanelClient object of TLMDCaptionPanel directly in DFM code. Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[1] This is an empty TLMDCaptionPanel&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[2] Move component data between &amp;quot;object TLMDCaptionPanelClient&amp;quot; and &amp;quot;end&amp;quot;, e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
  object LMDCaptionPanel1: TLMDCaptionPanel&lt;br /&gt;
    Left = 304&lt;br /&gt;
    Top = 144&lt;br /&gt;
    Width = 193&lt;br /&gt;
    Height = 121&lt;br /&gt;
    Bevel.Mode = bmStandard&lt;br /&gt;
    Bevel.StandardStyle = lsWindowBorder&lt;br /&gt;
    TabOrder = 0&lt;br /&gt;
    object TLMDCaptionPanelClient&lt;br /&gt;
      object Button1: TButton&lt;br /&gt;
        Left = 80&lt;br /&gt;
        Top = 40&lt;br /&gt;
        Width = 75&lt;br /&gt;
        Height = 25&lt;br /&gt;
        Caption = 'Button1'&lt;br /&gt;
        TabOrder = 0&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLMDFormDisplay ===&lt;br /&gt;
==== How to access specific controls on displayed forms? ====&lt;br /&gt;
To access controls on forms displayed in a TLMDFormDisplay component you have to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1, you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Reason&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
&lt;br /&gt;
=== TLMDOneInstance ===&lt;br /&gt;
==== Flickering of main window when second instance is started. ====&lt;br /&gt;
There are two ways to workaround this:&lt;br /&gt;
* You create a small separate application which has nothing else to do except closing the current instance and restarting it..&lt;br /&gt;
* You do not use the component but internal functions of LMD-Tools (more complex, but elegant). &lt;br /&gt;
To mimic TLMDOneInstance without using the control: In the project source file add LMDClass unit to uses clause and check LMDApplication.IsPrevRunning property before any form is loaded (this global property tells you, whether a previous instance is running). If yes, simple exit the application and call LMDActivatePrevInstance method from LMDUtils.pas to activate the already running instance. &lt;br /&gt;
To explicitely allow restart simply use a command line parameter, so that test for previous instance is skipped when command line parameter is set.&lt;br /&gt;
&lt;br /&gt;
=== TLMDTrayIcon ===&lt;br /&gt;
==== Starting a trayicon application in hidden state ====&lt;br /&gt;
The TrayIcon demo from version LMD-Tools 8.10 on (check &amp;lt;b&amp;gt;lmdtools\Other\LMD Sys\LMDTrayIcon&amp;lt;/b&amp;gt; in demos folder) demonstrates this feature (trayicon in taskbar is visible only). To achieve this feature, the project sourcecode must be altered as follows:&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Before Delphi/CRS 2007&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Delphi/CRS 2007 and higher&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  Application.Initialize;&lt;br /&gt;
  Application.Title := 'Traytool 1.0';&lt;br /&gt;
  if LMDSIWindowsVistaUp then&lt;br /&gt;
    Application.MainFormOnTaskBar := true;  // not required, but supported since 8.10 (--&amp;gt; Aero Glass)&lt;br /&gt;
  Application.ShowMainForm := false;&lt;br /&gt;
  Application.CreateForm(TForm1, Form1);&lt;br /&gt;
  Form1.trayicon.HideApplication;&lt;br /&gt;
  Application.Run;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Recent Delphi releases require additional code (caused by correct Vista support and the new MainFormOnTaskBar feature).&lt;br /&gt;
=== Container Controls ===&lt;br /&gt;
==== How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ====&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&amp;lt;br&amp;gt;&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property. &lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDStringList1[myIndex].Items:=myExternalVCLStringList;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile: &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;myIndex:=LMDStringList1.Insert(2, nil);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Dialog Controls ===&lt;br /&gt;
&lt;br /&gt;
==== Using OnCustomize event in native LMD Dialog controls ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure TForm1.dCustomize(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
i:Integer;&lt;br /&gt;
begin&lt;br /&gt;
with TForm(Sender) do&lt;br /&gt;
 for i:=0 to ComponentCount-1 do&lt;br /&gt;
 if (Components[i] is TLMDButton) and (TLMDButton(Components[i]).Caption='&amp;amp;amp;New Folder') then&lt;br /&gt;
 TLMDButton(Components[i]).Caption:='MyString';&lt;br /&gt;
end;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Some notes on Unicode issues ===&lt;br /&gt;
&lt;br /&gt;
Since release 10.05 unicode support was added in LMD Tools. Since that moment labels, buttons, edit controls of LMD Tools could display/edit unicode text. The main change were made to LMDGraphUtils, where two methods were changed: LMDDrawTextExt and LMDDrawTextCalcExt. Before release 10.05 they used DrawTextEx only; since release 10.05 they use DrawTextExW if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This caused a side effect: some applications that worked correctly in ANSI version (those that used non-latin charsets), do not work if LMD_UNICODE is defined, e.g. following code resulted incorrect captions:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDButton1.Font.Charset:=ARABIC_CHARSET;&lt;br /&gt;
 LMDButton1.Caption&amp;amp;nbsp;:= #NN#NN#NN#NN; //#NN are some byte values - codes of symbols&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In release 10.10 we added ForceANSI property in TLMDApplication class. Setting this property to true enforces calling ANSI version of DrawTextEx in LMD Tools text drawing routines even if LMD_UNICODE switch is defined.&lt;br /&gt;
&lt;br /&gt;
This allows to use ANSI in LMD Tools and UNICODE in ElPack at the same time.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' For Delphi 2009 and upper versions, LMD_UNICODE is always defined.&lt;br /&gt;
&lt;br /&gt;
=== Some notes on using DB-aware controls ===&lt;br /&gt;
&lt;br /&gt;
==== LMDDBSpinEdit and LMDDBExtSpinEdit: MinValue and MaxValue issues ====&lt;br /&gt;
&lt;br /&gt;
In 10.14 release TLMDDBSpinEdit and TLMDDBExtSpinEdit received two new boolean properties: UseDBMinMax and  UseZeroLogic. Both are set to true by default for compatibility. These flags were introduced because of some peculiarities of using MinValue and MaxValue in db-aware spin edits.&lt;br /&gt;
&lt;br /&gt;
The help topic on TIntegerField states:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
If the value of MaxValue is 0, the integer field can have a value up to the maximum value that can be represented by the native database type.&lt;br /&gt;
...&lt;br /&gt;
If the value of MinValue is 0, the integer field can have a value as small as the native database type can represent.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This logic has immanent drawback which causes usage of some intervals impossible: e.g. we cannot use [0, N], or [-N, 0] intervals, because zeros removes the constraint.&lt;br /&gt;
Another issue is that MinValue and MaxValue not always can be read from database field definitions. &lt;br /&gt;
&lt;br /&gt;
If UseDBMinMax is set to true, then MinValue and MaxValue properties are overriden from field properties. Otherwise, they will have values set by programmer in designtime or runtime.&lt;br /&gt;
&lt;br /&gt;
If UseZeroLogic is set to true, then zeros remove constraints, allowing maximum positive value if MaxValue = 0, and minimum negative value if MinValue = 0.  If UseZeroLogic is false, then MinValue = 0 means that no negative values are allowed and, respectively, MaxValue = 0 means that no positive values are allowed. When UseZeroLogic is false, programmer can use boolean flags InfiniteMin and InfiniteMax to remove min-max constraints.&lt;br /&gt;
&lt;br /&gt;
=== ListIndex vs. ImageIndex property ===&lt;br /&gt;
&lt;br /&gt;
Since LMD Tools 2012.1, ImageIndex property is used instead of ListIndex in TLMDBaseGraphicButton to define image taken from imagelist.&lt;br /&gt;
&lt;br /&gt;
This is made to make usage of two-dimensional imagelists consistent with one-dimensional imagelists.&lt;br /&gt;
&lt;br /&gt;
If you want to force former use of ListIndex in TLMDBaseGraphicButton, locate {.$DEFINE LMD_FORCELISTINDEXUSE} entry in lmdcmps.inc file and remove dot. In this case ListIndex will be used to define image index in one-dimensional imagelists like TLMDBitmapList, TLMDGraphicList etc, like it was in versions prior to LMD Tools 2012.1.&lt;br /&gt;
&lt;br /&gt;
== LMD TextPack ==&lt;br /&gt;
&lt;br /&gt;
==== Using embedded controls in LMDTextPanel ====&lt;br /&gt;
&lt;br /&gt;
'''Question'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I use html parser in LMDTextPanel control. The text is an HTML code like that&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control vclclass=TButton name=&amp;quot;b1&amp;quot; Caption=&amp;quot;Hello&amp;quot; width=&amp;quot;50&amp;quot; height=&amp;quot;50&amp;quot;&amp;gt; &amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;control vclclass=TLMDEdit name=&amp;quot;e1&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;BR&amp;gt; &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Why the embedded TLMDEdit control is now shown in runtime?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use TEdit, TButton, TCheckBox, TRadioButton as embedded controls without any additional code, because these classes are automatically registered in constructor TLMDEmbdControl.Create.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
However, you can use any other control TSomeControl provided that RegisterClass(TSomeControl) was called prior to html parsing.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, your code will work fine if you add LMDEdit to uses clause and code RegisterClass(TLMDEdit) in FormCreate.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note for C++ Builder users: &amp;lt;br&amp;gt;Use RegisterClass('''__classid'''(TLMDEdit)) instead of RegisterClass(TLMDEdit).&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2009_-_Theme_Engine&amp;diff=3832</id>
		<title>LMD 2009 - Theme Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2009_-_Theme_Engine&amp;diff=3832"/>
				<updated>2017-08-18T12:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
From LMD-Tools 2009 releases we introduce new approach to Theme Engine. This approach aims at following main goals:&lt;br /&gt;
&lt;br /&gt;
* Basic theme engine causes no or only small overhead (by using System Themes support of Delphi, which is integrated since Delphi 7);&lt;br /&gt;
* Management of any calls for internal theme services is centralized;&lt;br /&gt;
* No theme related switches and recompilation of library code, but a separate package which you can decide to use or not at runtime;&lt;br /&gt;
* Possibility of using custom theme and system theme simultaneously.&lt;br /&gt;
&lt;br /&gt;
The entry point for new theme services is now ''LMDThemes'' unit.&amp;lt;br&amp;gt;&lt;br /&gt;
This unit introduces '''TLMDThemeRenderer''' and '''TLMDThemeServices''' classes,&lt;br /&gt;
LMDThemeServices (global method to access a singleton instance of TLMDThemeServices class), some&lt;br /&gt;
helper methods like LMDSetThemeMode, and a number of theme related constants.&amp;lt;br&amp;gt;&lt;br /&gt;
'''TLMDThemeRenderer''' class is an abstract ancestor class for any custom theme renderers. &amp;lt;br&amp;gt;'''TLMDThemeServices''' class provides centralized and unified access to theme rendering routines.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes from LMD-Tools 2007 version of theme services ==&lt;br /&gt;
&lt;br /&gt;
=== General changes ===&lt;br /&gt;
&lt;br /&gt;
''LMDXPStyles'' and ''LMDXPThemeManager'' units removed. &amp;lt;br&amp;gt;Wherever it is possible, system ''Themes'' and ''UxTheme'' units are used.&amp;lt;br&amp;gt;CtlXP property is now deprecated (moved to public), it is no longer used and remains only for compatibility reasons. ThemeMode (of TLMDThemeMode type, defined in LMDClass unit) property introduced to be used instead of CtlXP. &amp;lt;br&amp;gt;Type '''TLMDThemeMode''' = (ttmNone, ttmPlatform, ttmNative):&amp;lt;br&amp;gt;ttmNone = No global themeing, use control settings&amp;lt;br&amp;gt;ttmPlatform = CtlXP or UseXPThemes&amp;lt;br&amp;gt;ttmNative = our native theme engine&amp;lt;br&amp;gt;The ''intfThemes'' unit is now deprecated.&amp;lt;br&amp;gt;LMDSetCtlXP helper method, which was defined in ''intfThemes'', is replaced by LMDSetThemeMode, defined in ''LMDThemes'' unit:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure LMDSetThemeMode(aParent: TWinControl; const Value: TLMDThemeMode);overload;&lt;br /&gt;
 procedure LMDSetThemeMode(aParent: TCustomForm; const Value: TLMDThemeMode);overload;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The call&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetCtlXP (self, true);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
must be replaced by&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetThemeMode(self, ttmPlatform);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The call like&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetCtlXP (self, false);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
must be replaced by&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetThemeMode(self, ttmNone);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changes to component code ===&lt;br /&gt;
&lt;br /&gt;
A standard example for replacing code: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 if UseXP or (LMDApplication.UseXPThemes and (Bevel.Mode=bmWindows)) then&lt;br /&gt;
 begin&lt;br /&gt;
     aPartId&amp;amp;nbsp;:= PP_BAR;&lt;br /&gt;
     if Direction in [mdVertical, mdVerticalReverse] then&lt;br /&gt;
        aPartId&amp;amp;nbsp;:= PP_BARVERT;&lt;br /&gt;
     &lt;br /&gt;
     DrawThemeBackGround (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, nil);&lt;br /&gt;
     {$ifdef CLR}&lt;br /&gt;
     GetThemeBackgroundContentRect (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, FRect);&lt;br /&gt;
     {$else ifdef CLR}&lt;br /&gt;
     GetThemeBackgroundContentRect (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, {$IFDEF LMDDISABLE_LMDTHEMES}@{$ENDIF}FRect);&lt;br /&gt;
     {$endif ifdef CLR}&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;changes now to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 lThemeMode&amp;amp;nbsp;:= UseThemeMode; // store current ThemeMode locally when it is used more than once&lt;br /&gt;
 if (lThemeMode &amp;amp;lt;&amp;amp;gt; ttmNone) then // same as IsThemed, because UseThemeMode was already determined, this is faster &lt;br /&gt;
 begin&lt;br /&gt;
     if Direction in [mdVertical, mdVerticalReverse] then&lt;br /&gt;
        Details&amp;amp;nbsp;:= tpBarVert&lt;br /&gt;
     else&lt;br /&gt;
        Details&amp;amp;nbsp;:= tpBar;&lt;br /&gt;
     LMDThemeServices.DrawElement(lThemeMode, Canvas.Handle, Details, FRect);&lt;br /&gt;
     FRect&amp;amp;nbsp;:= LMDThemeServices.ContentRect(lThemeMode, Canvas.Handle, ThemeServices.GetElementDetails(Details), FRect);&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As one can see, code becomes much more cleaner and readable. Notes:&lt;br /&gt;
&lt;br /&gt;
* All ThemeModes &amp;amp;lt;&amp;amp;gt; ttmNone are handled by LMDThemeServices.&lt;br /&gt;
* UseThemeMode takes care to check whether a specific thememode is available. It will automatically provide least possible theme mode, e.g. ttmNone on Win98 systems if ThemeMode = ttmPlatform.&lt;br /&gt;
* Take GlobalThemeMode into account. GlobalThemeMode allows programmer to change ThemeMode for complete application with one boolean property.&lt;br /&gt;
* LMDApplication.UseXPThemes is only available for compatibility, never use it in new code (use LMDThemeService methods)&lt;br /&gt;
* Use LMDPtrToRect, LMDRectToPtr methods for PRect/IntPtr variables (to avoid {$IFNDEF CRL}@{$ENDIF} code).&lt;br /&gt;
&lt;br /&gt;
=== Changes to native theme engine ===&lt;br /&gt;
&lt;br /&gt;
Native theme engine is available now as a standalone package LMD Themes Pack. No compiler switches are needed to enable/disable native theme engine.&amp;lt;br&amp;gt;Components '''TLMDThemeEngineController''' and '''TLMDFormThemeProvider''' moved to LMD Themes Pack. Theme engine can load only one theme at a time, LoadTheme methods removed. This allowed to simplify code greately.&amp;lt;br&amp;gt;'''TLMDThemeEngine''' is now a descendand of '''TLMDThemeRenderer''' class.&amp;lt;br&amp;gt;''ActivateColorScheme'' method added:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;function ActivateColorScheme(ColorScheme: WideString = ''): boolean;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''TLMDThemeEngine''' methods return (where applicable) boolean values (true if succeeded, false if failed) instead of HRESULT values.&amp;lt;br&amp;gt;'''Note:''' The behaviour of ''ActivateTheme''method changed. In previous version, if LMDThemeEngine.Enabled was false, then ActivateTheme failed. In new version, ActivateTheme method can be called even if theme engine is disabled, and, if succeeded, it activates theme engine, too.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2009_-_Theme_Engine&amp;diff=3831</id>
		<title>LMD 2009 - Theme Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2009_-_Theme_Engine&amp;diff=3831"/>
				<updated>2017-08-18T12:02:39Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-StartRes}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
From LMD-Tools 2009 releases we introduce new approach to Theme Engine. This approach aims at following main goals:&lt;br /&gt;
&lt;br /&gt;
* Basic theme engine causes no or only small overhead (by using System Themes support of Delphi, which is integrated since Delphi 7);&lt;br /&gt;
* Management of any calls for internal theme services is centralized;&lt;br /&gt;
* No theme related switches and recompilation of library code, but a separate package which you can decide to use or not at runtime;&lt;br /&gt;
* Possibility of using custom theme and system theme simultaneously.&lt;br /&gt;
&lt;br /&gt;
The entry point for new theme services is now ''LMDThemes'' unit.&amp;lt;br&amp;gt;&lt;br /&gt;
This unit introduces '''TLMDThemeRenderer''' and '''TLMDThemeServices''' classes,&lt;br /&gt;
LMDThemeServices (global method to access a singleton instance of TLMDThemeServices class), some&lt;br /&gt;
helper methods like LMDSetThemeMode, and a number of theme related constants.&amp;lt;br&amp;gt;&lt;br /&gt;
'''TLMDThemeRenderer''' class is an abstract ancestor class for any custom theme renderers. &amp;lt;br&amp;gt;'''TLMDThemeServices''' class provides centralized and unified access to theme rendering routines.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes from LMD-Tools 2007 version of theme services ==&lt;br /&gt;
&lt;br /&gt;
=== General changes ===&lt;br /&gt;
&lt;br /&gt;
''LMDXPStyles'' and ''LMDXPThemeManager'' units removed. &amp;lt;br&amp;gt;Wherever it is possible, system ''Themes'' and ''UxTheme'' units are used.&amp;lt;br&amp;gt;CtlXP property is now deprecated (moved to public), it is no longer used and remains only for compatibility reasons. ThemeMode (of TLMDThemeMode type, defined in LMDClass unit) property introduced to be used instead of CtlXP. &amp;lt;br&amp;gt;Type '''TLMDThemeMode''' = (ttmNone, ttmPlatform, ttmNative):&amp;lt;br&amp;gt;ttmNone = No global themeing, use control settings&amp;lt;br&amp;gt;ttmPlatform = CtlXP or UseXPThemes&amp;lt;br&amp;gt;ttmNative = our native theme engine&amp;lt;br&amp;gt;The ''intfThemes'' unit is now deprecated.&amp;lt;br&amp;gt;LMDSetCtlXP helper method, which was defined in ''intfThemes'', is replaced by LMDSetThemeMode, defined in ''LMDThemes'' unit:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;procedure LMDSetThemeMode(aParent: TWinControl; const Value: TLMDThemeMode);overload;&lt;br /&gt;
 procedure LMDSetThemeMode(aParent: TCustomForm; const Value: TLMDThemeMode);overload;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The call&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetCtlXP (self, true);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
must be replaced by&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetThemeMode(self, ttmPlatform);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The call like&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetCtlXP (self, false);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
must be replaced by&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;LMDSetThemeMode(self, ttmNone);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Changes to component code ===&lt;br /&gt;
&lt;br /&gt;
A standard example for replacing code: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 if UseXP or (LMDApplication.UseXPThemes and (Bevel.Mode=bmWindows)) then&lt;br /&gt;
 begin&lt;br /&gt;
 aPartId&amp;amp;nbsp;:= PP_BAR;&lt;br /&gt;
 if Direction in [mdVertical, mdVerticalReverse] then&lt;br /&gt;
 aPartId&amp;amp;nbsp;:= PP_BARVERT;&lt;br /&gt;
 DrawThemeBackGround (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, nil);&lt;br /&gt;
 {$ifdef CLR}&lt;br /&gt;
 GetThemeBackgroundContentRect (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, FRect);&lt;br /&gt;
 {$else ifdef CLR}&lt;br /&gt;
 GetThemeBackgroundContentRect (LMDThemeService.Theme[tiProgress], Canvas.Handle, aPartId, 0, FRect, {$IFDEF LMDDISABLE_LMDTHEMES}@{$ENDIF}FRect);&lt;br /&gt;
 {$endif ifdef CLR}&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;changes now to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
 lThemeMode&amp;amp;nbsp;:= UseThemeMode; // store current ThemeMode locally when it is used more than once&lt;br /&gt;
 if (lThemeMode &amp;amp;lt;&amp;amp;gt; ttmNone) then // same as IsThemed, because UseThemeMode was already determined, this is faster &lt;br /&gt;
 begin&lt;br /&gt;
 if Direction in [mdVertical, mdVerticalReverse] then&lt;br /&gt;
 Details&amp;amp;nbsp;:= tpBarVert&lt;br /&gt;
 else&lt;br /&gt;
 Details&amp;amp;nbsp;:= tpBar;&lt;br /&gt;
 LMDThemeServices.DrawElement(lThemeMode, Canvas.Handle, Details, FRect);&lt;br /&gt;
 FRect&amp;amp;nbsp;:= LMDThemeServices.ContentRect(lThemeMode, Canvas.Handle, ThemeServices.GetElementDetails(Details), FRect);&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
As one can see, code becomes much more cleaner and readable. Notes:&lt;br /&gt;
&lt;br /&gt;
* All ThemeModes &amp;amp;lt;&amp;amp;gt; ttmNone are handled by LMDThemeServices.&lt;br /&gt;
* UseThemeMode takes care to check whether a specific thememode is available. It will automatically provide least possible theme mode, e.g. ttmNone on Win98 systems if ThemeMode = ttmPlatform.&lt;br /&gt;
* Take GlobalThemeMode into account. GlobalThemeMode allows programmer to change ThemeMode for complete application with one boolean property.&lt;br /&gt;
* LMDApplication.UseXPThemes is only available for compatibility, never use it in new code (use LMDThemeService methods)&lt;br /&gt;
* Use LMDPtrToRect, LMDRectToPtr methods for PRect/IntPtr variables (to avoid {$IFNDEF CRL}@{$ENDIF} code).&lt;br /&gt;
&lt;br /&gt;
=== Changes to native theme engine ===&lt;br /&gt;
&lt;br /&gt;
Native theme engine is available now as a standalone package LMD Themes Pack. No compiler switches are needed to enable/disable native theme engine.&amp;lt;br&amp;gt;Components '''TLMDThemeEngineController''' and '''TLMDFormThemeProvider''' moved to LMD Themes Pack. Theme engine can load only one theme at a time, LoadTheme methods removed. This allowed to simplify code greately.&amp;lt;br&amp;gt;'''TLMDThemeEngine''' is now a descendand of '''TLMDThemeRenderer''' class.&amp;lt;br&amp;gt;''ActivateColorScheme'' method added:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;function ActivateColorScheme(ColorScheme: WideString = ''): boolean;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
'''TLMDThemeEngine''' methods return (where applicable) boolean values (true if succeeded, false if failed) instead of HRESULT values.&amp;lt;br&amp;gt;'''Note:''' The behaviour of ''ActivateTheme''method changed. In previous version, if LMDThemeEngine.Enabled was false, then ActivateTheme failed. In new version, ActivateTheme method can be called even if theme engine is disabled, and, if succeeded, it activates theme engine, too.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_ElPack_FAQ&amp;diff=3830</id>
		<title>LMD VCL - LMD ElPack FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_ElPack_FAQ&amp;diff=3830"/>
				<updated>2017-08-18T11:38:06Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TElDateTimePicker ==&lt;br /&gt;
&lt;br /&gt;
=== How to translage button captions and day names? How to hide/show certain buttons? ===&lt;br /&gt;
&lt;br /&gt;
a) '''To translate the names of months and days''' use property CustomCalendarNames that contains lists of LongMonthNames, ShortMonthNames, LongDayNames and ShortDayNames. It changes the captions in calendar-grid. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) There are several ways '''to change buttons captions''': &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) you can change resourcestrings SLMDCapToday, SLMDCapOk etc. in LMDElConst.pas &amp;lt;br&amp;gt;&lt;br /&gt;
:2) you can use method c) &amp;lt;br&amp;gt;&lt;br /&gt;
:3) you can change variable that declared in ElDTPick for example as below: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
// destroy old form if need:&lt;br /&gt;
  ElDateTimePicker1.ShowPopupCalendar := False;&lt;br /&gt;
// change variable that contains caption for Today button:&lt;br /&gt;
  TodayCap := 'Now!';&lt;br /&gt;
// new form with new captions will be created:&lt;br /&gt;
  ElDateTimePicker1.ShowPopupCalendar := True;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change ClearCap, TodayCap, OkCap, CancelCap, CalendarCap, CapCalendarGB, CapClockGB, NextYearHint, NextMonthHint, PrevYearHint and PrevMonthHint.&lt;br /&gt;
&lt;br /&gt;
c) '''To manage buttons''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
   THElDateTimePicker = class(TElDateTimePicker);&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElDateTimePicker1DropDown(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  LForm: TElCalendarForm;&lt;br /&gt;
begin&lt;br /&gt;
  LForm := THElDateTimePicker(Sender).FForm;&lt;br /&gt;
  if Assigned(LForm) then&lt;br /&gt;
  begin&lt;br /&gt;
    // tuneup the form.&lt;br /&gt;
    LForm.ClearBtn.Visible := false;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Available buttons: ClearBtn, TodayBtn, OkBtn, CancelBtn.&lt;br /&gt;
&lt;br /&gt;
== TElInspector ==&lt;br /&gt;
&lt;br /&gt;
=== How to use custom inplace editors? ===&lt;br /&gt;
&lt;br /&gt;
Inspector uses own collection of inplace editors. You can examine them in ElInspectorEditors.pas We'll define simple descendant of the button edit and will use it for editing of boolean values. &amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
&lt;br /&gt;
  TForm1 = class(TForm)&lt;br /&gt;
&lt;br /&gt;
    ElInspector1: TElInspector;&lt;br /&gt;
    ElInspectorRTTIDataSource1: TElInspectorRTTIDataSource;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  TMyElInspectorInplaceButtonEdit = class(TElInspectorInplaceButtonEdit)&lt;br /&gt;
  protected&lt;br /&gt;
    procedure BtnClick(Sender: TObject); override;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TMyElInspectorInplaceButtonEdit }&lt;br /&gt;
&lt;br /&gt;
procedure TMyElInspectorInplaceButtonEdit.BtnClick(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  if MessageDlg('Yes = True, No = False', mtConfirmation, [mbYes,mbNo], 0) = mrYes then&lt;br /&gt;
  begin&lt;br /&gt;
    TElInspectorItem(Item).InspectorData.AsString := 'True';&lt;br /&gt;
    Editor.Text := 'True';&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
  begin&lt;br /&gt;
    TElInspectorItem(Item).InspectorData.AsString := 'False';&lt;br /&gt;
    Editor.Text := 'False';&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
  LT: TElInspectorRegister;&lt;br /&gt;
begin&lt;br /&gt;
// we must to find current editor for boolean values in inspector's editors list&lt;br /&gt;
  for i := 1 to ElInspectorRTTIDataSource1.RegisterList.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    LT := TElInspectorRegister(ElInspectorRTTIDataSource1.RegisterList.Items[i]);&lt;br /&gt;
    if (LT is TElInspectorTypeInfo) and (TElInspectorTypeInfo(LT).TypeInfo = TypeInfo(Boolean)) then&lt;br /&gt;
    begin &lt;br /&gt;
    // remove current boolean editor&lt;br /&gt;
      ElInspectorRTTIDataSource1.RegisterList.Remove( ElInspectorRTTIDataSource1.RegisterList.Items[i] );&lt;br /&gt;
    // register our editor&lt;br /&gt;
      ElInspectorRTTIDataSource1.RegisterList.Insert(i, TElInspectorTypeInfo.Create(TMyElInspectorInplaceButtonEdit, TElBooleanProperty, TypeInfo(Boolean)));&lt;br /&gt;
      Break;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TStyleManager ==&lt;br /&gt;
&lt;br /&gt;
=== How to use StyleName? ===&lt;br /&gt;
&lt;br /&gt;
Style Manager operates with hierarchical style sheets. These style sheets are similar to Cascading Style Sheets (CSS), used in web pages, but they are more effective and easy to use. Each style sheet contains several styles. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each style contains one or more property values. When the style is applied to the component, the component is checked for presence of the property with given name. If the property is present, it is set to the value, specified in the style. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Style can be one of three types: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) Default&lt;br /&gt;
:2) Class&lt;br /&gt;
:3) Specific&lt;br /&gt;
&lt;br /&gt;
There is one default style per style sheet. It is an ancestor for all other styles. Specific styles are applied when they are explicitly referred to by the component (in it's StyleName property).&amp;lt;br&amp;gt; Name of Specific style should begin by point (ex. '.CustomStyle') for prevention of crossing with names of classes.&amp;lt;br&amp;gt; Class styles are applied when there is no specific style name specified for the component. In this case the style with the name equal to component's class is searched for and applied. For example, if the component TElEdit refers to style manager, but there is no style name specified, Style Manager tries to find the style named 'TElEdit'. If it finds, this style is applied. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML controls ==&lt;br /&gt;
&lt;br /&gt;
=== Could you tell me how to get the HTML text on an HTML Label (View, TElXTreeCell etc.) to center? ===&lt;br /&gt;
&lt;br /&gt;
You may use &amp;lt;html4strict&amp;gt;'&amp;lt;p align=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;'&amp;lt;/html4strict&amp;gt; tag to set desired text alignment.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ElShellTree, ElTree, ElXTree ==&lt;br /&gt;
&lt;br /&gt;
=== How to get all nodes above Selected item until root? ===&lt;br /&gt;
&lt;br /&gt;
In this example we place on form TElXTree, TMemo and TButton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
  ParentItem, ChildItem: TElXTreeItem;&lt;br /&gt;
begin&lt;br /&gt;
 Memo1.Lines.Clear;&lt;br /&gt;
 if Assigned(ElXTree1.Selected) then&lt;br /&gt;
 begin&lt;br /&gt;
   i := ElXTree1.Selected.Index; // index of item in parent's list&lt;br /&gt;
   ChildItem := ElXTree1.Selected;&lt;br /&gt;
   ParentItem := ChildItem.Parent;&lt;br /&gt;
   while Assigned(ParentItem) do  //check parent here. I get items until root&lt;br /&gt;
   begin&lt;br /&gt;
     while i &amp;gt;= 0 do&lt;br /&gt;
     begin&lt;br /&gt;
       Memo1.Lines.Add(ParentItem.Children[i].Text);&lt;br /&gt;
       dec(i);&lt;br /&gt;
     end;&lt;br /&gt;
     ChildItem := ParentItem;  // new children&lt;br /&gt;
     ParentItem := ChildItem.Parent; // new parent&lt;br /&gt;
     i := ChildItem.Index; // new children's index&lt;br /&gt;
   end;&lt;br /&gt;
   Memo1.Lines.Add(ChildItem.Text); // last children&lt;br /&gt;
 end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to automatically check/uncheck all child nodes with check/uncheck a folder node? ===&lt;br /&gt;
&lt;br /&gt;
In this example we place on form TElShellTree and assign it's event handlers as below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses .... , LMDTypes, ShlObj;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  ElShellTree1.ShowCheckBoxes := True;&lt;br /&gt;
// don't clear items on collapse to not discard checkbox's state&lt;br /&gt;
  ElShellTree1.ClearOnCollapse := False;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElShellTree1ItemChecked(Sender: TObject;  Item: &lt;br /&gt;
TElTreeItem);&lt;br /&gt;
  procedure CheckChilds(AItem: TElTreeItem);&lt;br /&gt;
  var&lt;br /&gt;
    it : TElTreeItem;&lt;br /&gt;
  begin&lt;br /&gt;
    it := AItem.GetFirstChild;&lt;br /&gt;
    while Assigned(it) do&lt;br /&gt;
    begin&lt;br /&gt;
      it.Checked := AItem.Checked;&lt;br /&gt;
      CheckChilds(it);&lt;br /&gt;
      it := AItem.GetNextChild(it);&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
begin&lt;br /&gt;
  CheckChilds(Item);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElShellTree1ItemAdded(Sender: TObject;&lt;br /&gt;
  ItemName: TLMDString; ShellFolder: IShellFolder; RelPIDL: PItemIDList;&lt;br /&gt;
  Item: TElShellTreeItem);&lt;br /&gt;
begin&lt;br /&gt;
// check that the item has checkbox's state as its parent&lt;br /&gt;
// this is necessary only for TElShellTree because it's build dynamically&lt;br /&gt;
  if Assigned(Item.Parent) then&lt;br /&gt;
    Item.Checked := Item.Parent.Checked;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to add new folder to TElShell* controls ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure LMDNewFolder(const ATree: TCustomElTree; const AFolder: TLMDString);&lt;br /&gt;
var&lt;br /&gt;
  LList: TElShellList;&lt;br /&gt;
  LTree: TElShellTree;&lt;br /&gt;
  LPIDL: PItemIDList;&lt;br /&gt;
  LTemp: TLMDString;&lt;br /&gt;
begin&lt;br /&gt;
  LList := nil;&lt;br /&gt;
  LTree := nil;&lt;br /&gt;
  if ATree is TElShellTree then&lt;br /&gt;
  begin&lt;br /&gt;
    LTree := TElShellTree(ATree);&lt;br /&gt;
    LPIDL := LTree.FocusedPIDL;&lt;br /&gt;
    GetPathFromPIDL(LPIDL, LTemp);&lt;br /&gt;
  end&lt;br /&gt;
  else if ATree is TElShellList then&lt;br /&gt;
  begin&lt;br /&gt;
    LList := TElShellList(ATree);&lt;br /&gt;
    LPIDL := LList.FocusedPIDL;&lt;br /&gt;
    GetPathFromPIDL(LPIDL, LTemp);&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
    raise Exception.CreateFmt('Only TElShellTree and TElShellList supported. But not %s', [ATree.ClassName]);&lt;br /&gt;
  CreateDirectoryW(PWideChar(LTemp + PathDelim + AFolder), nil);&lt;br /&gt;
  if Assigned(LList) then&lt;br /&gt;
    LList.RefreshList(True);&lt;br /&gt;
  if Assigned(LTree) then&lt;br /&gt;
    LTree.RefreshTree(LTree.Selected, 2);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== El(X)Tree, ElTreeStringGrid ==&lt;br /&gt;
&lt;br /&gt;
=== How handle all selected items in tree (grid)? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  LItem: TElTreeItem;&lt;br /&gt;
begin&lt;br /&gt;
  LItem := ElTreeStringGrid1.GetNextSelected(nil);&lt;br /&gt;
  while Assigned(it) do&lt;br /&gt;
  begin&lt;br /&gt;
    // do something with item&lt;br /&gt;
    LItem := ElTreeStringGrid1.GetNextSelected(LItem);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to draw part of item's text to pass over the several columns? ===&lt;br /&gt;
&lt;br /&gt;
You can use OnItemPostDraw event to redraw part of item. For example I can redraw item text over first two columns:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses elstrutils;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElTree1ItemPostDraw(Sender: TObject; Canvas: TCanvas;&lt;br /&gt;
  Item: TElTreeItem; ItemRect: TRect; var DrawFocusRect: Boolean);&lt;br /&gt;
var&lt;br /&gt;
  R: TRect;&lt;br /&gt;
  s: TElFString;&lt;br /&gt;
  i: integer;&lt;br /&gt;
begin&lt;br /&gt;
  R := ItemRect;&lt;br /&gt;
  R.Right := ElTree1.HeaderSections[0].Width + ElTree1.HeaderSections[1].Width - 1;&lt;br /&gt;
  R.Top := R.Top + Item.Height div 2; // dirty calculation. use HTMLRender to render text if you need exact result&lt;br /&gt;
  // this is main column so we need to take into account space for lines and buttons&lt;br /&gt;
  R.Left := R.Left + Item.IndentAdjust;&lt;br /&gt;
  if (ElTree1.ShowRoot and ElTree1.ShowLines) or (ElTree1.ShowButtons and ElTree1.ShowRootButtons) then&lt;br /&gt;
    Inc(R.Left, ElTree1.ItemIndent)&lt;br /&gt;
  else&lt;br /&gt;
    Inc(R.Left, ElTree1.ItemIndent div 5);&lt;br /&gt;
  // offset rect if we use images&lt;br /&gt;
  R.Left := R.Left + 20 ; // paste here image width + 4 instead of 20&lt;br /&gt;
  Canvas.Brush.Style := bsSolid;&lt;br /&gt;
  Canvas.Brush.Color := clWhite; // set item's color if need&lt;br /&gt;
  // my Item.Text = '&amp;lt;html&amp;gt;&amp;lt;b&amp;gt;Some text 1&amp;lt;/b&amp;gt; &amp;lt;p&amp;gt;'+#13#10+'Some very very very very very very long text 2&amp;lt;/html&amp;gt;'&lt;br /&gt;
  i := Pos(#10, Item.Text);&lt;br /&gt;
  s := '';&lt;br /&gt;
  if i &amp;gt; 0 then&lt;br /&gt;
    s := Copy(Item.Text, i + 1, length(Item.Text) - i - 8); // 8 to ignore '&amp;lt;/html&amp;gt;'&lt;br /&gt;
  DrawTextW(Canvas.Handle, PWideChar(s), length(s), R, DT_NOPREFIX and DT_Left);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ElDB(X)Tree ==&lt;br /&gt;
&lt;br /&gt;
=== How could I display images in an Item if I've stored image's indexes in a database field? ===&lt;br /&gt;
&lt;br /&gt;
:1. Set TElDBXTree.ShowImages = True &amp;lt;br&amp;gt;&lt;br /&gt;
:2. Assign list of images (TImageList, TElImageList etc) to TElDBXTree.Images (and TElDBXTree.Images2 if you need it) properties &amp;lt;br&amp;gt;&lt;br /&gt;
:3. Open TElDBXTree.StylesDefs property in Object Inspector and choice &amp;quot;Table field&amp;quot; radiobutton in &amp;quot;Item images&amp;quot; radiogroup. It enforce setting Item.ImagesFromBase property to True for items. &amp;lt;br&amp;gt;&lt;br /&gt;
:4. Set data fields, where values for 1st (and 2st) image indexes was stored (look at Normal and State combos). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hereon you should see images on the left side of the item's text. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to make the sorted column drawn with an special background color ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to reach it. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) you may use OnSortEnd event to set custom style to each cell&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.ElXTree1SortEnd(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
  for j := 0 to ElXTree1.Items.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].UseOwnStyle := True;&lt;br /&gt;
      if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone)&lt;br /&gt;
      then&lt;br /&gt;
      begin&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
      end&lt;br /&gt;
      else&lt;br /&gt;
      begin&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clWhite;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
      end;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2) you may use the cascading property of style to reach the same effect:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
// create test tree with 5 items. set custom colors in cells but not activate it&lt;br /&gt;
  for j := 0 to 5 do&lt;br /&gt;
  begin&lt;br /&gt;
    ElXTree1.Items.AddChild(nil,'Item'+Inttostr(j));&lt;br /&gt;
    ElXTree1.Items.Item[j].Cells[1].Text := Inttostr(j);&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].UseOwnStyle := True;&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElXTree1SortEnd(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
// in this procedure we activate using own colors for cells in sorted section&lt;br /&gt;
  for j := 0 to ElXTree1.Items.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone) &lt;br /&gt;
      then&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false&lt;br /&gt;
      else&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:3) if the tree contains a lot of items more optimized to set colors in OnItemPreDraw event:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.ElXTree1ItemPreDraw(Sender: TObject; Item: TElXTreeItem);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
begin&lt;br /&gt;
  for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    Item.Cells[i].UseOwnStyle := True;&lt;br /&gt;
    if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone)&lt;br /&gt;
    then&lt;br /&gt;
    begin&lt;br /&gt;
      Item.Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
      Item.Cells[i].Style.ParentColors := false;&lt;br /&gt;
      Item.Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      Item.Cells[i].Style.CellBackGroundColor := clWhite;&lt;br /&gt;
      Item.Cells[i].Style.ParentColors := false;&lt;br /&gt;
      Item.Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:3a) ... or use virtual mode of tree &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ Please look examle of virtual tree in our demo]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NVIDIA problem&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Spme users reported that they have pronlem with nView desktop manager. The Problem in the implementation of nView. It also crash Windows Explorer, WebEx in IE.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&amp;lt;br&amp;gt;Try to update to latest Version of nView. There are hooking some Win-API's and Windows-Messages and sometimes forget to pass the messages to the real destination.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:LMD_ElPack]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_ElPack_FAQ&amp;diff=3829</id>
		<title>LMD VCL - LMD ElPack FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_LMD_ElPack_FAQ&amp;diff=3829"/>
				<updated>2017-08-18T11:34:49Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Overview}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TElDateTimePicker ==&lt;br /&gt;
&lt;br /&gt;
=== How to translage button captions and day names? How to hide/show certain buttons? ===&lt;br /&gt;
&lt;br /&gt;
a) '''To translate the names of months and days''' use property CustomCalendarNames that contains lists of LongMonthNames, ShortMonthNames, LongDayNames and ShortDayNames. It changes the captions in calendar-grid. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) There are several ways '''to change buttons captions''': &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) you can change resourcestrings SLMDCapToday, SLMDCapOk etc. in LMDElConst.pas &amp;lt;br&amp;gt;&lt;br /&gt;
:2) you can use method c) &amp;lt;br&amp;gt;&lt;br /&gt;
:3) you can change variable that declared in ElDTPick for example as below: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
// destroy old form if need:&lt;br /&gt;
  ElDateTimePicker1.ShowPopupCalendar := False;&lt;br /&gt;
// change variable that contains caption for Today button:&lt;br /&gt;
  TodayCap := 'Now!';&lt;br /&gt;
// new form with new captions will be created:&lt;br /&gt;
  ElDateTimePicker1.ShowPopupCalendar := True;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change ClearCap, TodayCap, OkCap, CancelCap, CalendarCap, CapCalendarGB, CapClockGB, NextYearHint, NextMonthHint, PrevYearHint and PrevMonthHint.&lt;br /&gt;
&lt;br /&gt;
c) '''To manage buttons''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
   THElDateTimePicker = class(TElDateTimePicker);&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElDateTimePicker1DropDown(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  LForm: TElCalendarForm;&lt;br /&gt;
begin&lt;br /&gt;
  LForm := THElDateTimePicker(Sender).FForm;&lt;br /&gt;
  if Assigned(LForm) then&lt;br /&gt;
  begin&lt;br /&gt;
    // tuneup the form.&lt;br /&gt;
    LForm.ClearBtn.Visible := false;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Available buttons: ClearBtn, TodayBtn, OkBtn, CancelBtn.&lt;br /&gt;
&lt;br /&gt;
== TElInspector ==&lt;br /&gt;
&lt;br /&gt;
=== How to use custom inplace editors? ===&lt;br /&gt;
&lt;br /&gt;
Inspector uses own collection of inplace editors. You can examine them in ElInspectorEditors.pas We'll define simple descendant of the button edit and will use it for editing of boolean values. &amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
type&lt;br /&gt;
&lt;br /&gt;
  TForm1 = class(TForm)&lt;br /&gt;
&lt;br /&gt;
    ElInspector1: TElInspector;&lt;br /&gt;
    ElInspectorRTTIDataSource1: TElInspectorRTTIDataSource;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
  TMyElInspectorInplaceButtonEdit = class(TElInspectorInplaceButtonEdit)&lt;br /&gt;
  protected&lt;br /&gt;
    procedure BtnClick(Sender: TObject); override;&lt;br /&gt;
  end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
implementation&lt;br /&gt;
&lt;br /&gt;
{ TMyElInspectorInplaceButtonEdit }&lt;br /&gt;
&lt;br /&gt;
procedure TMyElInspectorInplaceButtonEdit.BtnClick(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  if MessageDlg('Yes = True, No = False', mtConfirmation, [mbYes,mbNo], 0) = mrYes then&lt;br /&gt;
  begin&lt;br /&gt;
    TElInspectorItem(Item).InspectorData.AsString := 'True';&lt;br /&gt;
    Editor.Text := 'True';&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
  begin&lt;br /&gt;
    TElInspectorItem(Item).InspectorData.AsString := 'False';&lt;br /&gt;
    Editor.Text := 'False';&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
  LT: TElInspectorRegister;&lt;br /&gt;
begin&lt;br /&gt;
// we must to find current editor for boolean values in inspector's editors list&lt;br /&gt;
  for i := 1 to ElInspectorRTTIDataSource1.RegisterList.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    LT := TElInspectorRegister(ElInspectorRTTIDataSource1.RegisterList.Items[i]);&lt;br /&gt;
    if (LT is TElInspectorTypeInfo) and (TElInspectorTypeInfo(LT).TypeInfo = TypeInfo(Boolean)) then&lt;br /&gt;
    begin &lt;br /&gt;
    // remove current boolean editor&lt;br /&gt;
      ElInspectorRTTIDataSource1.RegisterList.Remove( ElInspectorRTTIDataSource1.RegisterList.Items[i] );&lt;br /&gt;
    // register our editor&lt;br /&gt;
      ElInspectorRTTIDataSource1.RegisterList.Insert(i, TElInspectorTypeInfo.Create(TMyElInspectorInplaceButtonEdit, TElBooleanProperty, TypeInfo(Boolean)));&lt;br /&gt;
      Break;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== TStyleManager ==&lt;br /&gt;
&lt;br /&gt;
=== How to use StyleName? ===&lt;br /&gt;
&lt;br /&gt;
Style Manager operates with hierarchical style sheets. These style sheets are similar to Cascading Style Sheets (CSS), used in web pages, but they are more effective and easy to use. Each style sheet contains several styles. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each style contains one or more property values. When the style is applied to the component, the component is checked for presence of the property with given name. If the property is present, it is set to the value, specified in the style. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Style can be one of three types: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) Default&lt;br /&gt;
:2) Class&lt;br /&gt;
:3) Specific&lt;br /&gt;
&lt;br /&gt;
There is one default style per style sheet. It is an ancestor for all other styles. Specific styles are applied when they are explicitly referred to by the component (in it's StyleName property).&amp;lt;br&amp;gt; Name of Specific style should begin by point (ex. '.CustomStyle') for prevention of crossing with names of classes.&amp;lt;br&amp;gt; Class styles are applied when there is no specific style name specified for the component. In this case the style with the name equal to component's class is searched for and applied. For example, if the component TElEdit refers to style manager, but there is no style name specified, Style Manager tries to find the style named 'TElEdit'. If it finds, this style is applied. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HTML controls ==&lt;br /&gt;
&lt;br /&gt;
=== Could you tell me how to get the HTML text on an HTML Label (View, TElXTreeCell etc.) to center? ===&lt;br /&gt;
&lt;br /&gt;
You may use &amp;lt;html4strict&amp;gt;'&amp;lt;p align=&amp;quot;Center&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;'&amp;lt;/html4strict&amp;gt; tag to set desired text alignment.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ElShellTree, ElTree, ElXTree ==&lt;br /&gt;
&lt;br /&gt;
=== How to get all nodes above Selected item until root? ===&lt;br /&gt;
&lt;br /&gt;
In this example we place on form TElXTree, TMemo and TButton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
  ParentItem, ChildItem: TElXTreeItem;&lt;br /&gt;
begin&lt;br /&gt;
 Memo1.Lines.Clear;&lt;br /&gt;
 if Assigned(ElXTree1.Selected) then&lt;br /&gt;
 begin&lt;br /&gt;
   i := ElXTree1.Selected.Index; // index of item in parent's list&lt;br /&gt;
   ChildItem := ElXTree1.Selected;&lt;br /&gt;
   ParentItem := ChildItem.Parent;&lt;br /&gt;
   while Assigned(ParentItem) do  //check parent here. I get items until root&lt;br /&gt;
   begin&lt;br /&gt;
     while i &amp;gt;= 0 do&lt;br /&gt;
     begin&lt;br /&gt;
       Memo1.Lines.Add(ParentItem.Children[i].Text);&lt;br /&gt;
       dec(i);&lt;br /&gt;
     end;&lt;br /&gt;
     ChildItem := ParentItem;  // new children&lt;br /&gt;
     ParentItem := ChildItem.Parent; // new parent&lt;br /&gt;
     i := ChildItem.Index; // new children's index&lt;br /&gt;
   end;&lt;br /&gt;
   Memo1.Lines.Add(ChildItem.Text); // last children&lt;br /&gt;
 end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to automatically check/uncheck all child nodes with check/uncheck a folder node? ===&lt;br /&gt;
&lt;br /&gt;
In this example we place on form TElShellTree and assign it's event handlers as below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses .... , LMDTypes, ShlObj;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  ElShellTree1.ShowCheckBoxes := True;&lt;br /&gt;
// don't clear items on collapse to not discard checkbox's state&lt;br /&gt;
  ElShellTree1.ClearOnCollapse := False;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElShellTree1ItemChecked(Sender: TObject;  Item: &lt;br /&gt;
TElTreeItem);&lt;br /&gt;
  procedure CheckChilds(AItem: TElTreeItem);&lt;br /&gt;
  var&lt;br /&gt;
    it : TElTreeItem;&lt;br /&gt;
  begin&lt;br /&gt;
    it := AItem.GetFirstChild;&lt;br /&gt;
    while Assigned(it) do&lt;br /&gt;
    begin&lt;br /&gt;
      it.Checked := AItem.Checked;&lt;br /&gt;
      CheckChilds(it);&lt;br /&gt;
      it := AItem.GetNextChild(it);&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
begin&lt;br /&gt;
  CheckChilds(Item);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElShellTree1ItemAdded(Sender: TObject;&lt;br /&gt;
  ItemName: TLMDString; ShellFolder: IShellFolder; RelPIDL: PItemIDList;&lt;br /&gt;
  Item: TElShellTreeItem);&lt;br /&gt;
begin&lt;br /&gt;
// check that the item has checkbox's state as its parent&lt;br /&gt;
// this is necessary only for TElShellTree because it's build dynamically&lt;br /&gt;
  if Assigned(Item.Parent) then&lt;br /&gt;
    Item.Checked := Item.Parent.Checked;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to add new folder to TElShell* controls ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure LMDNewFolder(const ATree: TCustomElTree; const AFolder: TLMDString);&lt;br /&gt;
var&lt;br /&gt;
  LList: TElShellList;&lt;br /&gt;
  LTree: TElShellTree;&lt;br /&gt;
  LPIDL: PItemIDList;&lt;br /&gt;
  LTemp: TLMDString;&lt;br /&gt;
begin&lt;br /&gt;
  LList := nil;&lt;br /&gt;
  LTree := nil;&lt;br /&gt;
  if ATree is TElShellTree then&lt;br /&gt;
  begin&lt;br /&gt;
    LTree := TElShellTree(ATree);&lt;br /&gt;
    LPIDL := LTree.FocusedPIDL;&lt;br /&gt;
    GetPathFromPIDL(LPIDL, LTemp);&lt;br /&gt;
  end&lt;br /&gt;
  else if ATree is TElShellList then&lt;br /&gt;
  begin&lt;br /&gt;
    LList := TElShellList(ATree);&lt;br /&gt;
    LPIDL := LList.FocusedPIDL;&lt;br /&gt;
    GetPathFromPIDL(LPIDL, LTemp);&lt;br /&gt;
  end&lt;br /&gt;
  else&lt;br /&gt;
    raise Exception.CreateFmt('Only TElShellTree and TElShellList supported. But not %s', [ATree.ClassName]);&lt;br /&gt;
  CreateDirectoryW(PWideChar(LTemp + PathDelim + AFolder), nil);&lt;br /&gt;
  if Assigned(LList) then&lt;br /&gt;
    LList.RefreshList(True);&lt;br /&gt;
  if Assigned(LTree) then&lt;br /&gt;
    LTree.RefreshTree(LTree.Selected, 2);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== El(X)Tree, ElTreeStringGrid ==&lt;br /&gt;
&lt;br /&gt;
=== How handle all selected items in tree (grid)? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  LItem: TElTreeItem;&lt;br /&gt;
begin&lt;br /&gt;
  LItem := ElTreeStringGrid1.GetNextSelected(nil);&lt;br /&gt;
  while Assigned(it) do&lt;br /&gt;
  begin&lt;br /&gt;
    // do something with item&lt;br /&gt;
    LItem := ElTreeStringGrid1.GetNextSelected(LItem);&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to draw part of item's text to pass over the several columns? ===&lt;br /&gt;
&lt;br /&gt;
You can use OnItemPostDraw event to redraw part of item. For example I can redraw item text over first two columns:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses elstrutils;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElTree1ItemPostDraw(Sender: TObject; Canvas: TCanvas;&lt;br /&gt;
  Item: TElTreeItem; ItemRect: TRect; var DrawFocusRect: Boolean);&lt;br /&gt;
var&lt;br /&gt;
  R: TRect;&lt;br /&gt;
  s: TElFString;&lt;br /&gt;
  i: integer;&lt;br /&gt;
begin&lt;br /&gt;
  R := ItemRect;&lt;br /&gt;
  R.Right := ElTree1.HeaderSections[0].Width + ElTree1.HeaderSections[1].Width - 1;&lt;br /&gt;
  R.Top := R.Top + Item.Height div 2; // dirty calculation. use HTMLRender to render text if you need exact result&lt;br /&gt;
  // this is main column so we need to take into account space for lines and buttons&lt;br /&gt;
  R.Left := R.Left + Item.IndentAdjust;&lt;br /&gt;
  if (ElTree1.ShowRoot and ElTree1.ShowLines) or (ElTree1.ShowButtons and ElTree1.ShowRootButtons) then&lt;br /&gt;
    Inc(R.Left, ElTree1.ItemIndent)&lt;br /&gt;
  else&lt;br /&gt;
    Inc(R.Left, ElTree1.ItemIndent div 5);&lt;br /&gt;
  // offset rect if we use images&lt;br /&gt;
  R.Left := R.Left + 20 ; // paste here image width + 4 instead of 20&lt;br /&gt;
  Canvas.Brush.Style := bsSolid;&lt;br /&gt;
  Canvas.Brush.Color := clWhite; // set item's color if need&lt;br /&gt;
  // my Item.Text = '&amp;lt;html&amp;gt;&amp;lt;b&amp;gt;Some text 1&amp;lt;/b&amp;gt; &amp;lt;p&amp;gt;'+#13#10+'Some very very very very very very long text 2&amp;lt;/html&amp;gt;'&lt;br /&gt;
  i := Pos(#10, Item.Text);&lt;br /&gt;
  s := '';&lt;br /&gt;
  if i &amp;gt; 0 then&lt;br /&gt;
    s := Copy(Item.Text, i + 1, length(Item.Text) - i - 8); // 8 to ignore '&amp;lt;/html&amp;gt;'&lt;br /&gt;
  DrawTextW(Canvas.Handle, PWideChar(s), length(s), R, DT_NOPREFIX and DT_Left);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ElDB(X)Tree ==&lt;br /&gt;
&lt;br /&gt;
=== How could I display images in an Item if I've stored image's indexes in a database field? ===&lt;br /&gt;
&lt;br /&gt;
:1. Set TElDBXTree.ShowImages = True &amp;lt;br&amp;gt;&lt;br /&gt;
:2. Assign list of images (TImageList, TElImageList etc) to TElDBXTree.Images (and TElDBXTree.Images2 if you need it) properties &amp;lt;br&amp;gt;&lt;br /&gt;
:3. Open TElDBXTree.StylesDefs property in Object Inspector and choice &amp;quot;Table field&amp;quot; radiobutton in &amp;quot;Item images&amp;quot; radiogroup. It enforce setting Item.ImagesFromBase property to True for items. &amp;lt;br&amp;gt;&lt;br /&gt;
:4. Set data fields, where values for 1st (and 2st) image indexes was stored (look at Normal and State combos). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hereon you should see images on the left side of the item's text. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to make the sorted column drawn with an special background color ===&lt;br /&gt;
&lt;br /&gt;
There are several ways to reach it. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:1) you may use OnSortEnd event to set custom style to each cell&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.ElXTree1SortEnd(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
  for j := 0 to ElXTree1.Items.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].UseOwnStyle := True;&lt;br /&gt;
      if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone)&lt;br /&gt;
      then&lt;br /&gt;
      begin&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
      end&lt;br /&gt;
      else&lt;br /&gt;
      begin&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clWhite;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false;&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
      end;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:2) you may use the cascading property of style to reach the same effect:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FormCreate(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
// create test tree with 5 items. set custom colors in cells but not activate it&lt;br /&gt;
  for j := 0 to 5 do&lt;br /&gt;
  begin&lt;br /&gt;
    ElXTree1.Items.AddChild(nil,'Item'+Inttostr(j));&lt;br /&gt;
    ElXTree1.Items.Item[j].Cells[1].Text := Inttostr(j);&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].UseOwnStyle := True;&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
      ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.ElXTree1SortEnd(Sender: TObject);&lt;br /&gt;
var&lt;br /&gt;
  i, j: integer;&lt;br /&gt;
begin&lt;br /&gt;
// in this procedure we activate using own colors for cells in sorted section&lt;br /&gt;
  for j := 0 to ElXTree1.Items.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
    begin&lt;br /&gt;
      if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone) &lt;br /&gt;
      then&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := false&lt;br /&gt;
      else&lt;br /&gt;
        ElXTree1.Items.Item[j].Cells[i].Style.ParentColors := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:3) if the tree contains a lot of items more optimized to set colors in OnItemPreDraw event:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ex:&amp;lt;br&amp;gt; &amp;lt;pre class=&amp;quot;brush:delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.ElXTree1ItemPreDraw(Sender: TObject; Item: TElXTreeItem);&lt;br /&gt;
var&lt;br /&gt;
  i: integer;&lt;br /&gt;
begin&lt;br /&gt;
  for i := 0 to ElXTree1.HeaderSections.Count - 1 do&lt;br /&gt;
  begin&lt;br /&gt;
    Item.Cells[i].UseOwnStyle := True;&lt;br /&gt;
    if (i = ElXTree1.SortSection) and&lt;br /&gt;
       (ElXTree1.HeaderSections.Sections[ElXTree1.SortSection].SortMode &amp;lt;&amp;gt; hsmNone)&lt;br /&gt;
    then&lt;br /&gt;
    begin&lt;br /&gt;
      Item.Cells[i].Style.CellBackGroundColor := clMoneyGreen;&lt;br /&gt;
      Item.Cells[i].Style.ParentColors := false;&lt;br /&gt;
      Item.Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
    end&lt;br /&gt;
    else&lt;br /&gt;
    begin&lt;br /&gt;
      Item.Cells[i].Style.CellBackGroundColor := clWhite;&lt;br /&gt;
      Item.Cells[i].Style.ParentColors := false;&lt;br /&gt;
      Item.Cells[i].Style.UseBackGroundColor := true;&lt;br /&gt;
    end;&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:3a) ... or use virtual mode of tree &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[ Please look examle of virtual tree in our demo]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NVIDIA problem&amp;lt;br&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Spme users reported that they have pronlem with nView desktop manager. The Problem in the implementation of nView. It also crash Windows Explorer, WebEx in IE.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&amp;lt;br&amp;gt;Try to update to latest Version of nView. There are hooking some Win-API's and Windows-Messages and sometimes forget to pass the messages to the real destination.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]] [[Category:LMD_ElPack]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3828</id>
		<title>LMD VCL - Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3828"/>
				<updated>2017-08-18T11:26:49Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Section}}&lt;br /&gt;
== Videos (NEW!) ==&lt;br /&gt;
All videos contain descriptions, but no sound.&lt;br /&gt;
&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Guide for creating/changing DockingPack styles &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD NG Controls ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/connectionpack/index.html NG ConnectionPack Guide]&lt;br /&gt;
* NG DialogPack&lt;br /&gt;
* *[httsp:/filesw.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack Guide]&lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dragdroppack/index.html NG Drag&amp;amp;Drop Guide] '''[NEW NG 2016]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/htmlpack/NGHTMLPack.htm NG HTML QuickStart]&lt;br /&gt;
* NG SerializerPack&lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide]    &lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference]   &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/ngvalidatorpack/index.html NG ValidatorPack]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DialogPack ==&lt;br /&gt;
*[http:s//wfileslmd.de/downloads/tutorials/lmddialogpack/index.html Documentation] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmddialogpack/frame/LMDDialogPack_UsingFrames.pdf Using frames in LMD DialogPack (PDF)], see also  ([http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/demo.zip Demo project (ZIP)])&lt;br /&gt;
*[[LMD DialogCreator Guide|DialogCreator Guide]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/dockingpack/index.html LMD DockingPack] Tutorial '''[Updated LMD 2014]'''&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction Video] &lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Video Guide for creating/changing DockingPack styles &lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD GridPack ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/lmdgridpack/index.html LMD GridPack] Tutorial '''[NEW]'''&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD VCL Common Runtime ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/validators/index.html LMD Validator Support] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDXML_Tutorial LMDXML] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/regular_expressions.htm TLMDRegExpr Introduction] (Regular Expressions section in Syntax Schemes Language reference)&lt;br /&gt;
* [[LMD LogTools tutorial|LMD LogTools Tutorial]]&lt;br /&gt;
* [[LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll]]&lt;br /&gt;
* [[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD-Tools ==&lt;br /&gt;
* [[LMD VCL - Transparency|Semi-Transparency]]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMD_StyleManager_tutorial LMD StyleManager] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Overview LMD Themes Concepts Overview]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_GradientRenderer LMD Themes New Gradient Renderer] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Editor LMD Gradient Themes Editor] Tutorial&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/designpack/index.html LMD DesignPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/scriptpack/index.html LMD ScriptPack] Tutorial&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/syntaxedit/index.html Creating SyntaxEdit Schemes...]&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction Video] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3827</id>
		<title>LMD VCL - Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3827"/>
				<updated>2017-08-18T11:26:22Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Section}}&lt;br /&gt;
== Videos (NEW!) ==&lt;br /&gt;
All videos contain descriptions, but no sound.&lt;br /&gt;
&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction] &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction] &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Guide for creating/changing DockingPack styles &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD NG Controls ==&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/connectionpack/index.html NG ConnectionPack Guide]&lt;br /&gt;
* NG DialogPack&lt;br /&gt;
* *[httsp:/filesw.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack Guide]&lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction Video] &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/dragdroppack/index.html NG Drag&amp;amp;Drop Guide] '''[NEW NG 2016]'''&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/htmlpack/NGHTMLPack.htm NG HTML QuickStart]&lt;br /&gt;
* NG SerializerPack&lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide]    &lt;br /&gt;
** [httsp:/filesw.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference]   &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/ngvalidatorpack/index.html NG ValidatorPack]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DialogPack ==&lt;br /&gt;
*[http:s//wfileslmd.de/downloads/tutorials/lmddialogpack/index.html Documentation] &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/lmddialogpack/frame/LMDDialogPack_UsingFrames.pdf Using frames in LMD DialogPack (PDF)], see also  ([http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/demo.zip Demo project (ZIP)])&lt;br /&gt;
*[[LMD DialogCreator Guide|DialogCreator Guide]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/dockingpack/index.html LMD DockingPack] Tutorial '''[Updated LMD 2014]'''&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction Video] &lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Video Guide for creating/changing DockingPack styles &lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD GridPack ==&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/lmdgridpack/index.html LMD GridPack] Tutorial '''[NEW]'''&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD VCL Common Runtime ==&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/validators/index.html LMD Validator Support] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDXML_Tutorial LMDXML] Tutorial&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/syntaxedit/regular_expressions.htm TLMDRegExpr Introduction] (Regular Expressions section in Syntax Schemes Language reference)&lt;br /&gt;
* [[LMD LogTools tutorial|LMD LogTools Tutorial]]&lt;br /&gt;
* [[LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll]]&lt;br /&gt;
* [[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD-Tools ==&lt;br /&gt;
* [[LMD VCL - Transparency|Semi-Transparency]]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMD_StyleManager_tutorial LMD StyleManager] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Overview LMD Themes Concepts Overview]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_GradientRenderer LMD Themes New Gradient Renderer] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Editor LMD Gradient Themes Editor] Tutorial&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/designpack/index.html LMD DesignPack] Tutorial&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/scriptpack/index.html LMD ScriptPack] Tutorial&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/syntaxedit/index.html Creating SyntaxEdit Schemes...]&lt;br /&gt;
* [https://files.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction Video] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3826</id>
		<title>LMD VCL - Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_VCL_-_Tutorials&amp;diff=3826"/>
				<updated>2017-08-18T11:25:07Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Head-Section}}&lt;br /&gt;
== Videos (NEW!) ==&lt;br /&gt;
All videos contain descriptions, but no sound.&lt;br /&gt;
&lt;br /&gt;
* [http://files.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction] &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction] &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Guide for creating/changing DockingPack styles &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD NG Controls ==&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/connectionpack/index.html NG ConnectionPack Guide]&lt;br /&gt;
* NG DialogPack&lt;br /&gt;
* *[http://www.lmd.de/downloads/tutorials/dialogpack/index.html NG DialogPack Guide]&lt;br /&gt;
** [http://www.lmd.de/downloads/tutorials/videos/NGDialogs-Introduction.mp4 NG DialogPack Introduction Video] &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/dragdroppack/index.html NG Drag&amp;amp;Drop Guide] '''[NEW NG 2016]'''&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/htmlpack/NGHTMLPack.htm NG HTML QuickStart]&lt;br /&gt;
* NG SerializerPack&lt;br /&gt;
** [http://www.lmd.de/downloads/tutorials/serialization/index.html NG SerializerPack Guide]    &lt;br /&gt;
** [http://www.lmd.de/downloads/tutorials/serializerpack/index.htm NG SerializerPack Reference]   &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/ngvalidatorpack/index.html NG ValidatorPack]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DialogPack ==&lt;br /&gt;
*[http://www.lmd.de/downloads/tutorials/lmddialogpack/index.html Documentation] &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/LMDDialogPack_UsingFrames.pdf Using frames in LMD DialogPack (PDF)], see also  ([http://www.lmd.de/downloads/tutorials/lmddialogpack/frame/demo.zip Demo project (ZIP)])&lt;br /&gt;
*[[LMD DialogCreator Guide|DialogCreator Guide]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LMD DockingPack ==&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/dockingpack/index.html LMD DockingPack] Tutorial '''[Updated LMD 2014]'''&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/DockingPackIntroduction.mp4 LMD DockingPack Introduction Video] &lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/LMDDockingPack-StyleEditor.mp4 LMD DockingPack StyleEditor] Video Guide for creating/changing DockingPack styles &lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD GridPack ==&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/lmdgridpack/index.html LMD GridPack] Tutorial '''[NEW]'''&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD VCL Common Runtime ==&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/validators/index.html LMD Validator Support] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDXML_Tutorial LMDXML] Tutorial&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/syntaxedit/regular_expressions.htm TLMDRegExpr Introduction] (Regular Expressions section in Syntax Schemes Language reference)&lt;br /&gt;
* [[LMD LogTools tutorial|LMD LogTools Tutorial]]&lt;br /&gt;
* [[LMD PluginPack tutorial for C++ Builder. Part 1: Creating Plugin dll]]&lt;br /&gt;
* [[LMD PluginPack. tutorial for C++Builder. Part 2: Creating host application]]&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD-Tools ==&lt;br /&gt;
* [[LMD VCL - Transparency|Semi-Transparency]]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMD_StyleManager_tutorial LMD StyleManager] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Overview LMD Themes Concepts Overview]&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_GradientRenderer LMD Themes New Gradient Renderer] Tutorial&lt;br /&gt;
* [http://wiki.lmd.de/index.php/LMDThemes_Editor LMD Gradient Themes Editor] Tutorial&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== LMD IDE-Tools ==&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/designpack/index.html LMD DesignPack] Tutorial&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/scriptpack/index.html LMD ScriptPack] Tutorial&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/syntaxedit/index.html Creating SyntaxEdit Schemes...]&lt;br /&gt;
* [http://www.lmd.de/downloads/tutorials/videos/LMDIDETools.mp4 LMD IDE-Tools Introduction Video] - The first half of the video is suitable for LMD DesignPack user as well, because in first step a simple form designer is created.&lt;br /&gt;
{{Top}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD_ElPack_5.0&amp;diff=3825</id>
		<title>LMD 2004 - History LMD ElPack 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD_ElPack_5.0&amp;diff=3825"/>
				<updated>2017-08-18T11:24:24Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD ElPack 5.0 releases. First official release: 10-Sep-2007 (Win32 only) &amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
&lt;br /&gt;
==== Release 5.11.10 (06-June-2007) ====&lt;br /&gt;
[+] TElDropTarget: TOleDragObject.WideFileList property was added. Provides access to the list of files that was dragged (like FileList property, but unicode filenames are supported).&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Scrollbar hint text is showing wrong column. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.11.00 (20-May-2007) ====&lt;br /&gt;
[+] TElDBXTree: new type of field support was added: DataType = ftWideMemo. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElFormContainer: 'AddForm' declares as deprecated, new method 'Add' was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCaptionPanel (TElExplorerBarGroup): always ignore TabStop property (always get tab if its CaptionSettings.Visible = True). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: av where items dragget to new parent. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFolderDialog: problem in Win95 fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: some problems with shortcuts solved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElToolBar: flicker in controls resizing was reduced. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TelPageControl: not enabled or visible tabs can't react on AccelChar. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TelRadioButton: frame drawing was corrected for DPI &amp;gt; 96 &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellList: incorrect restore of ShowHeader property. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: problem with horisontal scrolling in rigt-aligned tree is solved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: several problems with cells that contain html text are solved: incorrect selection when RowSelect = false, text not updated after changing, some problem with colors in virtual mode, some problems with link click etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Issues with adding Header Sections at Runtime fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.10.00 (22-March-2007) ====&lt;br /&gt;
[+] TElAdvancedPanel: BorderSides property published &amp;lt;br&amp;gt;&lt;br /&gt;
[*] Changes for Delphi 2007 compatibility (including fix for IDE-freezes with DBComboBox controls). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: Several changes for ActiveOnLevel property. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar + TElMainMenu: Removing MainMenu that is linked to MenuBar caused exception. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: Small correction in Assign method: AutoCheck and AutoHotKeys properties were not copied. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElMenu property designer: navigation by keyboard did not change the object in object inspector. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree: When items was cleared the selected property could point to non-existing item. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TEl(X)TreePrinter: Font changing caused exeption. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Cells html-link click problem. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several Vista-related problem are solved (in TElTreeStringGrid, TElMainMenu, with glyphs drawing etc.)&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.09.00 (07-March-2007) ====&lt;br /&gt;
[+] New compiler switch {-define LMD_COM_SERVER} was added to disable OleInitialize in initialization section of modules. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: MinButtonPos property (mbpLeft, mbpRight) added (to allow placement of MinButton on the left side near caption's checkbox). &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: OnBeforeRestore, OnBeforeMinimize events added to which allow preventing restoring\minimizing. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: OnRestoreHeight event added (procedure(Sender : TObject; var AHeight : integer)) to can change the height that will be restored. This can be useful for example to align several panels inside other control.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElSideBar: OnStartDrag event published. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel: small problem with custom min button glyph fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: event &amp;quot;On change&amp;quot; is fired twice when the date is changed. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: WM_UNICHAR message now is processed correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElIniFile: key's value with empty name was stored incorrectly. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: change UseXPThemes property has no effect on corresponding TElMainMenu. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: links to TElMainMenu were not cleared when new menu was assigned to control's Menu property or this property was set to nil. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMainMenu: incorrect background color when themes is available. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElRadioGroup: redundant OnClick event calls is some specific case. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSplitter: incorrect resizing if controls are placed on some parent (not on form). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree, TElXTree, TElDBXTree: some problems with right-aligned trees are fixed. 'Tree.Selected := nil' brings to av. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Html item text has wrong position (both vertically and horizontally). fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeCells: if RightAlignedText and RightAlignedView is 'true', the cells text that must be clipped is drawn as &amp;quot;.... xxxxxxxxx&amp;quot; (not like &amp;quot;xxxxxxx ....&amp;quot; as earlier)&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.08.50 (02-Feb-2007) ====&lt;br /&gt;
[+] TElHTMLRender: read-only property TElHTMLItem.ItemType: THTMLItemType added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Property StressShortCut: TShortCut was added to TElEdit and all its descendants and tree-editors with such descendant inside them. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElTree, TElXTree : InsertItemFromString is function (instead of procedure) that returns the created item. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: excessive calls of colors dialog window. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLPanel, TElAdvancedPanel: small problem with redraw when control was resized fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElInspector and ElInspectorRTTIDataSource: many properties aren't changed correctly. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTrayIcon: ExtendetHintForm excessive show during show icon's PopupMenu. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElX(DB)Tree: Some problems in right-aligned tree was solved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Changed the behaviour of editors for TElXTree: now its alignment set equal as trees header section's alignment (and not depends from data field for TElDBTreeEdit and TElWideDBTreeEdit).&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.08.00 (19-Jan-2007) ====&lt;br /&gt;
[+] TElCalendarDialog: new property FlatButtons added. Use CalendarFlatButtons property to specify whether a calendar form's buttons should be flat.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDateTimePicker: property CalendarFlatButtons added. Use CalendarFlatButtons property to specify whether a calendar form's buttons should be flat.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: method TElXTreeItem.CopyTo(NewParent: TElXTreeItem) added. Copies item to the NewParent with all its childrens. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Controls that have Action property can be linked with any 3rd party controls which are descendants of TBasisAction. Added possibility that action's Caption and Hint contain widestring value.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBTreeNavigator: small bug corrected in behaviour of 'last' button. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBar.TElExplorerBarGroup.CaptionSettings: ShowCloseButton not store/restore on form. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLView: the difference in scrollbars behaviour, depend from UseCustomScrollbars. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElIniFile: problem with reading from file in case that path contain symbols from not native code pages. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: A gradient on tabs is shown incorrectly when style is set to ModernAngled and position is set not to the bottom. fixed. Corrected drawing of Angled (ModernAngled) styled tabs. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElScrollBar: when left and right buttons is in disable state, the thumb paint as enable. (see in ElExplorer demo) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTreeCombo: combo closes only in case that item's text was clicked instead of whole item. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.07.00 (22-Dec-2006) ====&lt;br /&gt;
[+] TElBiProgressBar: new property Marquee: Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeSize: Integer default 20 - size of marquee as percent of bar size.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeUpdateInterval: Integer default 25 - timer interval&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeColor: TColor default clMaroon&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElHTMLComboBox, TEl(Wide)DBComboBox: now possible to use OnItemDraw event. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel.CaptionsSetting.MinButtonGlyph did not restore from DFM. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBTree: small memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: PopupCalendar button change its state when controls Enabled property was changed. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLRender: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellComboBox: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellList: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSideBar: changing BorderStyle has no effect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSideBar: When controls size is smaller than buttons size and user uses keyboard to navigate through the items, the item list does not move corresponding to this. fixed. The selected item can be not visible when SideBar change its size. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: bug in drag-n-drop procedure: dragging not automatically stoped when tab was dropped into other control. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElRegExpr: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBWideLookupComboBox: TopMargin has no effect. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: some problem with scrollbars are fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some problems with columns or sections adding in rigth-aligned (db)(x)trees and headers was solved.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.06.10 (17-Nov-2006) ====&lt;br /&gt;
[-] TElHTMLLabel: control doesn't take into account enabled state when painting (IsHTML = false). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupButton, TElGraphicsButton: some fixes in OnClick and OnDblClick events calls. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreePrinter: Items font is smooth now. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: some problems with RightAligned mode and fixed columns resolved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: corrected abnormal position of inplace editor in case FixedColumn &amp;gt; 0. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopup-Button,TElGraphicbutton,TElToolButton : small problem with buttons alignment was eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLView: when quickly moving forms with TElHtmlView off the screen and back, part of control was drawn incorrect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox, TElTreeInplaceComboBox: possible to see the text that isn't in the list when Style = csDropDownList. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.06.00 (31-Oct-2006) ====&lt;br /&gt;
[+] LMDElConst: LMDElHideSelectTextColor - constant was added for default value of HideSelectTextColor control's property. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDBXTree: Item.MoveTo, Item.MoveToIns methods added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDateTimePicker: CalendarStyle property added to be possible use TMonthCalendat instead of TElCalendar. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElListBox: OnChange event added. Fires when ItemIndex was changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElDBXTreeItem: MasterValue, MasterField properties was moved to public section. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] HTMLRender: small fix to draw transparent images properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: Change the Date when MinDate or MaxDate was changed and Date is outside of valid range.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: calendar form's look was redesigned. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: incorrect building of self-referenced and filtered trees was fixed. problem with change MainTreeColumn was resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: small resource leak was eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBarGroup.CaptionSettings.Alignment, TElPopupButton.Alignment, TElGraphicButton.Alignment properties was ignored. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBarGroup: Checkbox is allways shown for TElExplorerBarGroup in IDE. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFolderNameEdit: folder dialog must be modal. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLHint: small fix to identify html in string hints that was created with CreateUnicodeHintString function. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: small fixes in item's drawing procedures. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupMenu: draw popup menu very quickly in the top left corner of the screen, before drawing itself correctly in the right place. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: autosize didn't consider indentation of item. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Rect calculation for tree inplace editor was changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: cells text alignment fixed, space between the checkboxes in TElXTree and the text was added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.05.00 (21-Sep-2006) ====&lt;br /&gt;
[+] TElCheckGroup, TElComboGroup: property TransparentXPThemes added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElFontComboBox: function FontIndex(AFontName : TFontName):integer added to find index of font in list. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElGroupBox: TransparentXPThemes &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElInputDialog: OnEditorKeyPress event added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElLabel: OnMouseEnter, OnMouseLeave events implemented in delphi5. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElListBox, TElHTMLListBox: property HideFocusRect added. Note: If true, the focus rectangle is not drawn in all cases. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElStatusBar.Images, TElStatusPanel.ImageIndex was added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTreeInplaceComboBox: property IsHTML added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTreeItem, TElXTreeItem: procedure ReRenderMainText, ReRenderAllTexts - to render html-text if required. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElComboBox: small fix to handle NULL values correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: small fixes for correct OnSelectionChange event firing. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFormCaption: incorrect caption drawn if biSystemMenu in the form's property BorderIcons is False. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox, TElHTMLListBox: (IsHTML = True) the selected item ignores FocusedSelectColor. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElListBox: extra-space for TElListBox between Border and Text added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageConrol: XP-style supports for all styles of tabs except Angled regardless of TabPosition. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellCombo: memory leak is eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TEl(DB)TreeStringGrid: resolved problems with mouse events: double firing OnMouseDown event, OnDblClick never fires. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: feedback between tree and its global style(tree.style) was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: resolved problem with correct drawing ElXtree without columns when RowSelect = false &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree, TElXHeader: Some problems with RightAligned mode resolved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeCell: incorrect drawing when HeaderSection.Style = elhsImageIndex. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMouseHint: fixed bug with flashing when control was loaded or it's Active changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCustomComboBox: prevention of the deletion the selected Item in csDropDownList style. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElStrUtils: fixed small bug in the function PrettyStrToCurr.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.04.00 (22-July-2006) ====&lt;br /&gt;
[+] TELDBTreeStringGrid, TElDBXTreeStringGrid: Multiselect property was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElMemoCombo: property added ButtonArrowColor: TColor &amp;lt;br&amp;gt;&lt;br /&gt;
[+] ElPopupButton, ElGraphicButton: OnMouseEnter, OnMouseLeave events was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTrayInfo: method SetMessageIndex(const Index: Integer) was added to set the current message by index. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTreeCell: Data property was added for storing user defined data. Note: The ElXTree doesn't free this memory when the cell is deleted. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: OnCellDeletion event was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: eliminated memory leak when autocompletion property was setted. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: When solid color selected, setting SelectedColor in code want change ElColorCombo's color. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo, TElDriveComboBox ignores FocusedSelectColor, FocusedSelectTextColor properties. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckBox: when UseXPThemes and UseImageList both used, ElCheckBox text was not grayed after disable. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckGroup, TElRadioGroup: Fixed bug in Item's position calculating to prevent items disappear when its total height is too big. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSplitter: Some fixes to correct calculation of sizes when form is resize. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFontComboBox ignores DisabledColor, DisabledTextColor properties.Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElGraphicButton locked in down state on drag. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElGraphicButton, TElPopupButton: OnDblClick never fired. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox ignores DisabledColor, DisabledTextColor properties.Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLLabel: av with empty caption and IsHTML = True. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLRender: transparent and non transparent images now are drawed on the one level: vertically centred.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElImageComboBox: problem with non changing ReadOnly fixed. Problem with joint use ManualEdit and ImageNames fixed. Now image can be found by ImageNames by completion of its name. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTrayInfo, TElTrayIcon: fixed : message never shown; memory leak.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXHeader: Incorrect calculation function TElXCustomHeader.InResizeArea when tree has some fixed columns. Some problems in drawing procedures resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.03.10 (09-June-2006) ====&lt;br /&gt;
[+] TElXTreeCell.Tag property added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: ExplorerEditMode now works properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElListBox: AV in Delete method fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TELHTMLListBox: some fixes in drawing procedures: frame around focused item, focused but not selected item has no fill, HideSelectColor and HideSelectTextColor are taken into account.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.03 (26-May-2006) ====&lt;br /&gt;
[+] Controls with calculator: reaction on paste from clipboard added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: properties LineBorderColor, CurrentDayBitmap, CurrentDayUseBitmap added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: LineBorderColor - color that used for borders with style = fbtColorLineBorder CurrentDayBitmap - transparency bitmap to mark the current day CurrentDayUseBitmap - use CurrentDayBitmap or not The same properties to datapickers and calendar dialog controls added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: Property AutoSize added. Control's size is calculate depending on font's size. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElGroupBox: CheckBoxChecked property is changed by accelerator key . &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElMaskEdit: property WantTabs added to allow to process Tab key by OnKeyPress event. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElGroupBox, TElCheckGroup, TElRadioGroup, TElCheckBox: UseImageList and UseCustomGlyphs have effect with UseXPThemes. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElCalculator: adjust calendar's sizes when font's size changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: DropDown list shown on click when not needed (Style = csDropDown, ReadOnly = True) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: Modified property does not work if combo changed by keyboard or mouse. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElEdit: fixed bug in draw procedure when UseXPThemes is on and BorderStyle = bsNone &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: UseDisabledColors has no effect. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckBox, TElRadioButton: OnClick event fires when Checked property changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: fixed control's repainting when its Enabled property changes. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHotKey: Invalid keys processing (Up and Down). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenu, TElMenuBar: OnAdvancedDrawItem in ownerdraw menus never calls. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: Incorrect drawing fixed when menu has tdsOfficeXP menu style and vertical orientation. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMemoCombo: Incorrect calls of OnEnter, OnExit events fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMouseHint: some fixes for correct calculating of the hint windows sizes. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: problem with DblClick event was resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: Fix for bitmap properties (BitmapActiveTab etc.) to load properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPanel, TElToolbar: Grabs was drawn without visual styles. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElRadioGroup: OnClick event fires when RadioGroup.ItemIndex property changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXHeader: Section with merged cells now can be deleted without problems. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: incorrect drawing and av when items cleas (FixedBottomRowNum &amp;gt; 1) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElXTreePrinter: item checkboxes and images are not shown when PrintAsIs = false; StripedItems work not correctly when PrintAsIs = true and part of the tree is not seen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.02.10 (24-Apr-2006) ====&lt;br /&gt;
Minor update replacing some files.&lt;br /&gt;
&lt;br /&gt;
==== Release 5.02 (19-Apr-2006) ====&lt;br /&gt;
[+] TElFontListBox control added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: Event OnHeaderSectionCellClick(Sender: TObject; Section: TElXHeaderSection; Cell: TElXHeaderCell); added to retrieve which cell was actually clicked. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Part of next non-fitting item will be shown in end of tree &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel: Font property from CaptionSettings has no effect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: Fixed some errors in completion and drawing procedures (Style = csDropDownList). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox: Use ListBox.Width instead combo's Width in render procedure. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLLabel: problems when its AutoSize=false fixed.(affected TElDBLabel as well) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TELIniFile: Bug with wrong read binary property class fixed. 'Background' property reading in TElStyleManager corrected. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: Align's setting corrected in Draw*RightToLeft procedures. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupMenu: Fixed little problem with up button click in big popup menu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.01 (03-Apr-2006) ====&lt;br /&gt;
[+] Adding global variables for Windows Vista and other new Windows versions [AH]&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElWideDBComboBox control added. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] property OnCloseUp; published in TElComboBox &amp;lt;br&amp;gt;&lt;br /&gt;
[*] Property editor for TElXTreeItems registered. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElCalculaterEdit UseCustomScrollBars added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElDriveComboBox ItemIndex property added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElMemoCombo VertScrollBarStyles property added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Some changed in db-controls: TElDBWideEdit, TElDBWideMomo, TElDBButtonEdit, TElDBCombobox, TElDBCurrencyEdit, TElDBDateTimePicker, TElDBSpinEdit , TElDBFloatSpinEdit, TElWideDBLookupComboGrid, TElWideDBLookupComboBox. Now its ReadOnly state depends on dataset(field) conditions; new property DisplayReadOnlyOptions added [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElPageControl: Images can now be assigned only to single tabs (all other tabs behave normally)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Drawing of TElXTree and TELXHeader with FixedColNum &amp;gt; 0 are corrected. [EK] &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Wordwrap and HTML at the same time on ElXTree cells now possible&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some changes in drawing procedures of Tree and XTree (Selection-Height in Tree is to big, tag &amp;lt; p &amp;gt; has no effect in html item etc.) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV in Header (DragableSections = True) when lookup marker has pressed.(BTS #370)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Part of combo was drawn with white background. fixed. [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Searching in tree by entering text in header combo fixed. [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ultheme issue fixed (will be no longer included in Delphi 7 and better)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] C++ Builder 6 Designtime Package file fixed (for source installations)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixes in behaviour of visual controls in readonly state. Now value can't be changed by buttons, up\down keys etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Rename NotRaiseForBarStyle -&amp;gt; BarStyleNotRaise property to group BarStyle properties in objectinspector [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree, TElXTreeCell font properties change notofication added.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Fixed AlwaysKeepSelection and AlwaysKeepFocus properties. OnItemSelectedChange event call is more neatly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: ScrollBars now works correctly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed. Some Disabled Buttons with Glyphs look bad compared to ElPack 3.2. Now for disabled buttons gray shaded bitmap is used.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some issues with DB-aware components such as 'Db-edits (TElWideDBEdit, TElWideDBMemo) do not automatically put the dataset into edit mode when a text is pasted from the clipboard' fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Memory Leak in PopupTracker&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeItem.WholeLine property now works correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Designer.Modified flag for several property/component editors set correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.00.20 (16-Feb-2006) ====&lt;br /&gt;
[-] TElDBTreeDateTimePickerEdit / ShowClock issue fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Navigation by keyboard arrow in TElXTree with columns fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: TElDBDateTimepicker, TElDateTimePicker truncated date on display (non db too). Other cosmetic changes as well.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem with ComboBox controls in Win9X fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCalendarDialog: Fixed bug with clicking on Today button at designtime; additional minor bugs with button size and position fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problems with MegaDemos using TElPageCtrl control in non-themed environments fixed&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Initial Public Release 5.00.10 (13-Feb-2006) ====&lt;br /&gt;
No updates available yet.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD_ElPack_5.0&amp;diff=3824</id>
		<title>LMD 2004 - History LMD ElPack 5.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD_ElPack_5.0&amp;diff=3824"/>
				<updated>2017-08-18T11:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $v = &amp;quot;string&amp;quot;;    // sample initialization&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
html text&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    echo $v;         // end of php code&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD ElPack 5.0 releases. First official release: 10-Sep-2007 (Win32 only) &amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
&lt;br /&gt;
==== Release 5.11.10 (06-June-2007) ====&lt;br /&gt;
[+] TElDropTarget: TOleDragObject.WideFileList property was added. Provides access to the list of files that was dragged (like FileList property, but unicode filenames are supported).&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Scrollbar hint text is showing wrong column. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.11.00 (20-May-2007) ====&lt;br /&gt;
[+] TElDBXTree: new type of field support was added: DataType = ftWideMemo. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElFormContainer: 'AddForm' declares as deprecated, new method 'Add' was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCaptionPanel (TElExplorerBarGroup): always ignore TabStop property (always get tab if its CaptionSettings.Visible = True). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: av where items dragget to new parent. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFolderDialog: problem in Win95 fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: some problems with shortcuts solved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElToolBar: flicker in controls resizing was reduced. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TelPageControl: not enabled or visible tabs can't react on AccelChar. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TelRadioButton: frame drawing was corrected for DPI &amp;gt; 96 &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellList: incorrect restore of ShowHeader property. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: problem with horisontal scrolling in rigt-aligned tree is solved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: several problems with cells that contain html text are solved: incorrect selection when RowSelect = false, text not updated after changing, some problem with colors in virtual mode, some problems with link click etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Issues with adding Header Sections at Runtime fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.10.00 (22-March-2007) ====&lt;br /&gt;
[+] TElAdvancedPanel: BorderSides property published &amp;lt;br&amp;gt;&lt;br /&gt;
[*] Changes for Delphi 2007 compatibility (including fix for IDE-freezes with DBComboBox controls). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: Several changes for ActiveOnLevel property. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar + TElMainMenu: Removing MainMenu that is linked to MenuBar caused exception. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: Small correction in Assign method: AutoCheck and AutoHotKeys properties were not copied. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElMenu property designer: navigation by keyboard did not change the object in object inspector. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree: When items was cleared the selected property could point to non-existing item. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TEl(X)TreePrinter: Font changing caused exeption. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Cells html-link click problem. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several Vista-related problem are solved (in TElTreeStringGrid, TElMainMenu, with glyphs drawing etc.)&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.09.00 (07-March-2007) ====&lt;br /&gt;
[+] New compiler switch {-define LMD_COM_SERVER} was added to disable OleInitialize in initialization section of modules. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: MinButtonPos property (mbpLeft, mbpRight) added (to allow placement of MinButton on the left side near caption's checkbox). &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: OnBeforeRestore, OnBeforeMinimize events added to which allow preventing restoring\minimizing. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElAdvancedPanel: OnRestoreHeight event added (procedure(Sender : TObject; var AHeight : integer)) to can change the height that will be restored. This can be useful for example to align several panels inside other control.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElSideBar: OnStartDrag event published. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel: small problem with custom min button glyph fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: event &amp;quot;On change&amp;quot; is fired twice when the date is changed. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: WM_UNICHAR message now is processed correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElIniFile: key's value with empty name was stored incorrectly. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: change UseXPThemes property has no effect on corresponding TElMainMenu. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: links to TElMainMenu were not cleared when new menu was assigned to control's Menu property or this property was set to nil. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMainMenu: incorrect background color when themes is available. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElRadioGroup: redundant OnClick event calls is some specific case. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSplitter: incorrect resizing if controls are placed on some parent (not on form). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTree, TElXTree, TElDBXTree: some problems with right-aligned trees are fixed. 'Tree.Selected := nil' brings to av. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Html item text has wrong position (both vertically and horizontally). fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeCells: if RightAlignedText and RightAlignedView is 'true', the cells text that must be clipped is drawn as &amp;quot;.... xxxxxxxxx&amp;quot; (not like &amp;quot;xxxxxxx ....&amp;quot; as earlier)&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.08.50 (02-Feb-2007) ====&lt;br /&gt;
[+] TElHTMLRender: read-only property TElHTMLItem.ItemType: THTMLItemType added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Property StressShortCut: TShortCut was added to TElEdit and all its descendants and tree-editors with such descendant inside them. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElTree, TElXTree : InsertItemFromString is function (instead of procedure) that returns the created item. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: excessive calls of colors dialog window. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLPanel, TElAdvancedPanel: small problem with redraw when control was resized fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElInspector and ElInspectorRTTIDataSource: many properties aren't changed correctly. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTrayIcon: ExtendetHintForm excessive show during show icon's PopupMenu. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElX(DB)Tree: Some problems in right-aligned tree was solved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Changed the behaviour of editors for TElXTree: now its alignment set equal as trees header section's alignment (and not depends from data field for TElDBTreeEdit and TElWideDBTreeEdit).&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.08.00 (19-Jan-2007) ====&lt;br /&gt;
[+] TElCalendarDialog: new property FlatButtons added. Use CalendarFlatButtons property to specify whether a calendar form's buttons should be flat.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDateTimePicker: property CalendarFlatButtons added. Use CalendarFlatButtons property to specify whether a calendar form's buttons should be flat.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: method TElXTreeItem.CopyTo(NewParent: TElXTreeItem) added. Copies item to the NewParent with all its childrens. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Controls that have Action property can be linked with any 3rd party controls which are descendants of TBasisAction. Added possibility that action's Caption and Hint contain widestring value.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBTreeNavigator: small bug corrected in behaviour of 'last' button. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBar.TElExplorerBarGroup.CaptionSettings: ShowCloseButton not store/restore on form. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLView: the difference in scrollbars behaviour, depend from UseCustomScrollbars. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElIniFile: problem with reading from file in case that path contain symbols from not native code pages. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: A gradient on tabs is shown incorrectly when style is set to ModernAngled and position is set not to the bottom. fixed. Corrected drawing of Angled (ModernAngled) styled tabs. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElScrollBar: when left and right buttons is in disable state, the thumb paint as enable. (see in ElExplorer demo) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTreeCombo: combo closes only in case that item's text was clicked instead of whole item. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 5.07.00 (22-Dec-2006) ====&lt;br /&gt;
[+] TElBiProgressBar: new property Marquee: Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeSize: Integer default 20 - size of marquee as percent of bar size.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeUpdateInterval: Integer default 25 - timer interval&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElBiProgressBar: new property MarqueeColor: TColor default clMaroon&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElHTMLComboBox, TEl(Wide)DBComboBox: now possible to use OnItemDraw event. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel.CaptionsSetting.MinButtonGlyph did not restore from DFM. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBTree: small memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: PopupCalendar button change its state when controls Enabled property was changed. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLRender: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellComboBox: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellList: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSideBar: changing BorderStyle has no effect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSideBar: When controls size is smaller than buttons size and user uses keyboard to navigate through the items, the item list does not move corresponding to this. fixed. The selected item can be not visible when SideBar change its size. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: bug in drag-n-drop procedure: dragging not automatically stoped when tab was dropped into other control. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElRegExpr: memory leak eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBWideLookupComboBox: TopMargin has no effect. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: some problem with scrollbars are fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some problems with columns or sections adding in rigth-aligned (db)(x)trees and headers was solved.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.06.10 (17-Nov-2006) ====&lt;br /&gt;
[-] TElHTMLLabel: control doesn't take into account enabled state when painting (IsHTML = false). fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupButton, TElGraphicsButton: some fixes in OnClick and OnDblClick events calls. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreePrinter: Items font is smooth now. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: some problems with RightAligned mode and fixed columns resolved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: corrected abnormal position of inplace editor in case FixedColumn &amp;gt; 0. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopup-Button,TElGraphicbutton,TElToolButton : small problem with buttons alignment was eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLView: when quickly moving forms with TElHtmlView off the screen and back, part of control was drawn incorrect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox, TElTreeInplaceComboBox: possible to see the text that isn't in the list when Style = csDropDownList. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.06.00 (31-Oct-2006) ====&lt;br /&gt;
[+] LMDElConst: LMDElHideSelectTextColor - constant was added for default value of HideSelectTextColor control's property. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDBXTree: Item.MoveTo, Item.MoveToIns methods added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElDateTimePicker: CalendarStyle property added to be possible use TMonthCalendat instead of TElCalendar. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElListBox: OnChange event added. Fires when ItemIndex was changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElDBXTreeItem: MasterValue, MasterField properties was moved to public section. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] HTMLRender: small fix to draw transparent images properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: Change the Date when MinDate or MaxDate was changed and Date is outside of valid range.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: calendar form's look was redesigned. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDBXTree: incorrect building of self-referenced and filtered trees was fixed. problem with change MainTreeColumn was resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: small resource leak was eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBarGroup.CaptionSettings.Alignment, TElPopupButton.Alignment, TElGraphicButton.Alignment properties was ignored. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElExplorerBarGroup: Checkbox is allways shown for TElExplorerBarGroup in IDE. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFolderNameEdit: folder dialog must be modal. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLHint: small fix to identify html in string hints that was created with CreateUnicodeHintString function. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: small fixes in item's drawing procedures. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupMenu: draw popup menu very quickly in the top left corner of the screen, before drawing itself correctly in the right place. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: autosize didn't consider indentation of item. fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Rect calculation for tree inplace editor was changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: cells text alignment fixed, space between the checkboxes in TElXTree and the text was added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.05.00 (21-Sep-2006) ====&lt;br /&gt;
[+] TElCheckGroup, TElComboGroup: property TransparentXPThemes added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElFontComboBox: function FontIndex(AFontName : TFontName):integer added to find index of font in list. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElGroupBox: TransparentXPThemes &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElInputDialog: OnEditorKeyPress event added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElLabel: OnMouseEnter, OnMouseLeave events implemented in delphi5. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElListBox, TElHTMLListBox: property HideFocusRect added. Note: If true, the focus rectangle is not drawn in all cases. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElStatusBar.Images, TElStatusPanel.ImageIndex was added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTreeInplaceComboBox: property IsHTML added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTreeItem, TElXTreeItem: procedure ReRenderMainText, ReRenderAllTexts - to render html-text if required. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElComboBox: small fix to handle NULL values correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElEdit: small fixes for correct OnSelectionChange event firing. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFormCaption: incorrect caption drawn if biSystemMenu in the form's property BorderIcons is False. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox, TElHTMLListBox: (IsHTML = True) the selected item ignores FocusedSelectColor. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElListBox: extra-space for TElListBox between Border and Text added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageConrol: XP-style supports for all styles of tabs except Angled regardless of TabPosition. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElShellCombo: memory leak is eliminated. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TEl(DB)TreeStringGrid: resolved problems with mouse events: double firing OnMouseDown event, OnDblClick never fires. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: feedback between tree and its global style(tree.style) was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: resolved problem with correct drawing ElXtree without columns when RowSelect = false &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree, TElXHeader: Some problems with RightAligned mode resolved.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeCell: incorrect drawing when HeaderSection.Style = elhsImageIndex. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMouseHint: fixed bug with flashing when control was loaded or it's Active changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCustomComboBox: prevention of the deletion the selected Item in csDropDownList style. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElStrUtils: fixed small bug in the function PrettyStrToCurr.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.04.00 (22-July-2006) ====&lt;br /&gt;
[+] TELDBTreeStringGrid, TElDBXTreeStringGrid: Multiselect property was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElMemoCombo: property added ButtonArrowColor: TColor &amp;lt;br&amp;gt;&lt;br /&gt;
[+] ElPopupButton, ElGraphicButton: OnMouseEnter, OnMouseLeave events was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElTrayInfo: method SetMessageIndex(const Index: Integer) was added to set the current message by index. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTreeCell: Data property was added for storing user defined data. Note: The ElXTree doesn't free this memory when the cell is deleted. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: OnCellDeletion event was added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: eliminated memory leak when autocompletion property was setted. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: When solid color selected, setting SelectedColor in code want change ElColorCombo's color. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo, TElDriveComboBox ignores FocusedSelectColor, FocusedSelectTextColor properties. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckBox: when UseXPThemes and UseImageList both used, ElCheckBox text was not grayed after disable. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckGroup, TElRadioGroup: Fixed bug in Item's position calculating to prevent items disappear when its total height is too big. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElSplitter: Some fixes to correct calculation of sizes when form is resize. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElFontComboBox ignores DisabledColor, DisabledTextColor properties.Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElGraphicButton locked in down state on drag. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElGraphicButton, TElPopupButton: OnDblClick never fired. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox ignores DisabledColor, DisabledTextColor properties.Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLLabel: av with empty caption and IsHTML = True. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLRender: transparent and non transparent images now are drawed on the one level: vertically centred.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElImageComboBox: problem with non changing ReadOnly fixed. Problem with joint use ManualEdit and ImageNames fixed. Now image can be found by ImageNames by completion of its name. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElTrayInfo, TElTrayIcon: fixed : message never shown; memory leak.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXHeader: Incorrect calculation function TElXCustomHeader.InResizeArea when tree has some fixed columns. Some problems in drawing procedures resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.03.10 (09-June-2006) ====&lt;br /&gt;
[+] TElXTreeCell.Tag property added. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: ExplorerEditMode now works properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElListBox: AV in Delete method fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TELHTMLListBox: some fixes in drawing procedures: frame around focused item, focused but not selected item has no fill, HideSelectColor and HideSelectTextColor are taken into account.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.03 (26-May-2006) ====&lt;br /&gt;
[+] Controls with calculator: reaction on paste from clipboard added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: properties LineBorderColor, CurrentDayBitmap, CurrentDayUseBitmap added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: LineBorderColor - color that used for borders with style = fbtColorLineBorder CurrentDayBitmap - transparency bitmap to mark the current day CurrentDayUseBitmap - use CurrentDayBitmap or not The same properties to datapickers and calendar dialog controls added. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElCalendar: Property AutoSize added. Control's size is calculate depending on font's size. &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElGroupBox: CheckBoxChecked property is changed by accelerator key . &amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElMaskEdit: property WantTabs added to allow to process Tab key by OnKeyPress event. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElGroupBox, TElCheckGroup, TElRadioGroup, TElCheckBox: UseImageList and UseCustomGlyphs have effect with UseXPThemes. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElCalculator: adjust calendar's sizes when font's size changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: DropDown list shown on click when not needed (Style = csDropDown, ReadOnly = True) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: Modified property does not work if combo changed by keyboard or mouse. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElEdit: fixed bug in draw procedure when UseXPThemes is on and BorderStyle = bsNone &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElColorCombo: UseDisabledColors has no effect. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCheckBox, TElRadioButton: OnClick event fires when Checked property changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElDateTimePicker: fixed control's repainting when its Enabled property changes. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHotKey: Invalid keys processing (Up and Down). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenu, TElMenuBar: OnAdvancedDrawItem in ownerdraw menus never calls. fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuBar: Incorrect drawing fixed when menu has tdsOfficeXP menu style and vertical orientation. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMemoCombo: Incorrect calls of OnEnter, OnExit events fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMouseHint: some fixes for correct calculating of the hint windows sizes. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: problem with DblClick event was resolved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPageControl: Fix for bitmap properties (BitmapActiveTab etc.) to load properly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPanel, TElToolbar: Grabs was drawn without visual styles. Fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElRadioGroup: OnClick event fires when RadioGroup.ItemIndex property changed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXHeader: Section with merged cells now can be deleted without problems. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: incorrect drawing and av when items cleas (FixedBottomRowNum &amp;gt; 1) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] ElXTreePrinter: item checkboxes and images are not shown when PrintAsIs = false; StripedItems work not correctly when PrintAsIs = true and part of the tree is not seen. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.02.10 (24-Apr-2006) ====&lt;br /&gt;
Minor update replacing some files.&lt;br /&gt;
&lt;br /&gt;
==== Release 5.02 (19-Apr-2006) ====&lt;br /&gt;
[+] TElFontListBox control added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElXTree: Event OnHeaderSectionCellClick(Sender: TObject; Section: TElXHeaderSection; Cell: TElXHeaderCell); added to retrieve which cell was actually clicked. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Part of next non-fitting item will be shown in end of tree &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElAdvancedPanel: Font property from CaptionSettings has no effect. fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TCustomElCombo: Fixed some errors in completion and drawing procedures (Style = csDropDownList). &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLComboBox: Use ListBox.Width instead combo's Width in render procedure. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElHTMLLabel: problems when its AutoSize=false fixed.(affected TElDBLabel as well) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TELIniFile: Bug with wrong read binary property class fixed. 'Background' property reading in TElStyleManager corrected. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElMenuItem: Align's setting corrected in Draw*RightToLeft procedures. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElPopupMenu: Fixed little problem with up button click in big popup menu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.01 (03-Apr-2006) ====&lt;br /&gt;
[+] Adding global variables for Windows Vista and other new Windows versions [AH]&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TElWideDBComboBox control added. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] property OnCloseUp; published in TElComboBox &amp;lt;br&amp;gt;&lt;br /&gt;
[*] Property editor for TElXTreeItems registered. &amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElCalculaterEdit UseCustomScrollBars added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElDriveComboBox ItemIndex property added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElMemoCombo VertScrollBarStyles property added&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Some changed in db-controls: TElDBWideEdit, TElDBWideMomo, TElDBButtonEdit, TElDBCombobox, TElDBCurrencyEdit, TElDBDateTimePicker, TElDBSpinEdit , TElDBFloatSpinEdit, TElWideDBLookupComboGrid, TElWideDBLookupComboBox. Now its ReadOnly state depends on dataset(field) conditions; new property DisplayReadOnlyOptions added [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TElPageControl: Images can now be assigned only to single tabs (all other tabs behave normally)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Drawing of TElXTree and TELXHeader with FixedColNum &amp;gt; 0 are corrected. [EK] &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Wordwrap and HTML at the same time on ElXTree cells now possible&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some changes in drawing procedures of Tree and XTree (Selection-Height in Tree is to big, tag &amp;lt; p &amp;gt; has no effect in html item etc.) &amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV in Header (DragableSections = True) when lookup marker has pressed.(BTS #370)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Part of combo was drawn with white background. fixed. [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Searching in tree by entering text in header combo fixed. [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ultheme issue fixed (will be no longer included in Delphi 7 and better)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] C++ Builder 6 Designtime Package file fixed (for source installations)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixes in behaviour of visual controls in readonly state. Now value can't be changed by buttons, up\down keys etc.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Rename NotRaiseForBarStyle -&amp;gt; BarStyleNotRaise property to group BarStyle properties in objectinspector [EK]&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree, TElXTreeCell font properties change notofication added.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: Fixed AlwaysKeepSelection and AlwaysKeepFocus properties. OnItemSelectedChange event call is more neatly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTree: ScrollBars now works correctly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed. Some Disabled Buttons with Glyphs look bad compared to ElPack 3.2. Now for disabled buttons gray shaded bitmap is used.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Some issues with DB-aware components such as 'Db-edits (TElWideDBEdit, TElWideDBMemo) do not automatically put the dataset into edit mode when a text is pasted from the clipboard' fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Memory Leak in PopupTracker&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElXTreeItem.WholeLine property now works correctly. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Designer.Modified flag for several property/component editors set correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 5.00.20 (16-Feb-2006) ====&lt;br /&gt;
[-] TElDBTreeDateTimePickerEdit / ShowClock issue fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Navigation by keyboard arrow in TElXTree with columns fixed &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: TElDBDateTimepicker, TElDateTimePicker truncated date on display (non db too). Other cosmetic changes as well.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem with ComboBox controls in Win9X fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TElCalendarDialog: Fixed bug with clicking on Today button at designtime; additional minor bugs with button size and position fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problems with MegaDemos using TElPageCtrl control in non-themed environments fixed&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Initial Public Release 5.00.10 (13-Feb-2006) ====&lt;br /&gt;
No updates available yet.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3823</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3823"/>
				<updated>2017-08-18T10:40:17Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== Compatibility Components are not installed by default! ===&lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
===  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project ===&lt;br /&gt;
# The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
# Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
=== I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;. ===&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
=== A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility. ===&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
==== Up to LMD Elpack 4:==== &lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
==== From LMD-Tools Version 4/LMD ElPack 5 on:==== &lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
=== You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'. ===&lt;br /&gt;
&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
==== From LMD-Tools Version 4 and LMD ElPack 5 on:==== &lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
=== I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version? ===&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
===  Corrupted/screwed Component Palette ===&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
'''Answer 1:'''&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
'''Answer 2:'''&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
# Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
# Start Delphi with the -ns switch &lt;br /&gt;
# Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
# Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
# reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
# Get the latest DirectX drivers. &lt;br /&gt;
# After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===   Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help ===&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools. ===&lt;br /&gt;
'''Reason'''&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE. ===&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
===  ToolBar97 components ===&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===   The support request Nr. 1 for LMD-Tools 5:  ===&lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===   I use SE or registered package, but still trial messages appear in my application outside IDE. ===&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime. ===&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
1. Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
    if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
&lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
2. Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
    MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
    MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===  You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled. ===&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===   You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions. ===&lt;br /&gt;
'''Example'''&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
    LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
    LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&lt;br /&gt;
===  How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ===&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
    myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
    LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
    LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
    LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
    MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
    LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
    LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
    LMDStringList1.Delete(myIndex).&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
    myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  TLMDFormDisplay: How to access specific controls on forms? ===&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
    TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
===  CodeGuard Issues ===&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  LMD RichPack  ===&lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&lt;br /&gt;
    void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
&lt;br /&gt;
..to...&lt;br /&gt;
&lt;br /&gt;
    void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  LMD ShellPack  ===&lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
    #include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  LMD TextPack  ===&lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  LMD WebPack  ===&lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  TLMDHideNonVC  ===&lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  TLMDFormDisplay ===&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3822</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3822"/>
				<updated>2017-08-18T10:36:03Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== Compatibility Components are not installed by default! ===&lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
===  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project ===&lt;br /&gt;
# The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
# Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
=== I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;. ===&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
=== A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility. ===&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
==== Up to LMD Elpack 4:==== &lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
==== From LMD-Tools Version 4/LMD ElPack 5 on:==== &lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
=== You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'. ===&lt;br /&gt;
&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
==== From LMD-Tools Version 4 and LMD ElPack 5 on:==== &lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
=== I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version? ===&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
===  Corrupted/screwed Component Palette ===&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
'''Answer 1:'''&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
'''Answer 2:'''&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
# Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
# Start Delphi with the -ns switch &lt;br /&gt;
# Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
# Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
# reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
# Get the latest DirectX drivers. &lt;br /&gt;
# After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===   Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help ===&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools. ===&lt;br /&gt;
'''Reason'''&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE. ===&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3821</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3821"/>
				<updated>2017-08-18T10:26:14Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== Compatibility Components are not installed by default! ===&lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
===  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project ===&lt;br /&gt;
# The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
# Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
=== I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;. ===&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
=== A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility. ===&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
==== Up to LMD Elpack 4:==== &lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
==== From LMD-Tools Version 4/LMD ElPack 5 on:==== &lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
=== You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'. ===&lt;br /&gt;
&lt;br /&gt;
==== Up to LMD-Tools Version 4:==== &lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
==== From LMD-Tools Version 4 and LMD ElPack 5 on:==== &lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
=== I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version? ===&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3820</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3820"/>
				<updated>2017-08-18T10:25:29Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
=== Compatibility Components are not installed by default! ===&lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
===  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project ===&lt;br /&gt;
# The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
# Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
=== I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;. ===&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
=== A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility. ===&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
'''Up to LMD Elpack 4:'''&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
'''From LMD-Tools Version 4/LMD ElPack 5 on:'''&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
=== You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'. ===&lt;br /&gt;
&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
'''From LMD-Tools Version 4 and LMD ElPack 5 on:'''&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
=== I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version? ===&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3819</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3819"/>
				<updated>2017-08-18T10:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
# Compatibility Components are not installed by default! &lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
#  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.&lt;br /&gt;
## The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
## Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
# I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;.&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
# A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility.&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
'''Up to LMD Elpack 4:'''&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
'''From LMD-Tools Version 4/LMD ElPack 5 on:'''&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
# You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
'''From LMD-Tools Version 4 and LMD ElPack 5 on:'''&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
# I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3818</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3818"/>
				<updated>2017-08-18T10:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
# Compatibility Components are not installed by default! &lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
#  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.&lt;br /&gt;
## The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
## Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
# I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;.&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
# A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility.&lt;br /&gt;
Up to LMD-Tools Version 4:&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
&lt;br /&gt;
'''Up to LMD Elpack 4:'''&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
&lt;br /&gt;
'''From LMD-Tools Version 4/LMD ElPack 5 on:'''&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
# You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.&lt;br /&gt;
&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
&lt;br /&gt;
'''From LMD-Tools Version 4 and LMD ElPack 5 on:'''&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
# I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3817</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3817"/>
				<updated>2017-08-18T10:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
1. Compatibility Components are not installed by default! &lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
2.  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.&amp;lt;br&amp;gt;&lt;br /&gt;
    a. The problem happens only within IDE (does not affect the executable). &amp;lt;br&amp;gt;&lt;br /&gt;
    b. Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;.&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
4. A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility.&lt;br /&gt;
Up to LMD-Tools Version 4:&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
&lt;br /&gt;
'''Up to LMD Elpack 4:'''&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
&lt;br /&gt;
'''From LMD-Tools Version 4/LMD ElPack 5 on:'''&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.&lt;br /&gt;
&lt;br /&gt;
'''Up to LMD-Tools Version 4:'''&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
&lt;br /&gt;
'''From LMD-Tools Version 4 and LMD ElPack 5 on:'''&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
6. I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3816</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3816"/>
				<updated>2017-08-18T10:20:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
1. Compatibility Components are not installed by default! &lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
2.  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.&lt;br /&gt;
a. The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
b. Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
3. I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;.&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
4. A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility.&lt;br /&gt;
Up to LMD-Tools Version 4:&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
&lt;br /&gt;
**Up to LMD Elpack 4:**&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
&lt;br /&gt;
**From LMD-Tools Version 4/LMD ElPack 5 on:**&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.&lt;br /&gt;
&lt;br /&gt;
**Up to LMD-Tools Version 4:**&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
&lt;br /&gt;
**From LMD-Tools Version 4 and LMD ElPack 5 on:**&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
6. I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3815</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3815"/>
				<updated>2017-08-18T10:18:43Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
1. Compatibility Components are not installed by default! &lt;br /&gt;
User who you used the older components of version 1 in their projects (e.g. the ones from the LMD Free tab) must explicitly mark the corresponding check box in the installation options to install the LMD-Tools compatibility components. Please note: No components were left out, they're all still available (and will be available in the future). However we want to avoid that new user use these controls because they will not be improved in the future (because they're replaced by improved controls).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[G2]  I want to run my application in IDE, but debugger window appears (breakpoint just before ntdll.DbgUserBreakPoint) and I have to hit F9 several times to start project.&lt;br /&gt;
1.) The problem happens only within IDE (does not affect the executable). &lt;br /&gt;
2.) Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[G3]  I want to use a LMD-Tools Trial (or SE version) within a Delphi/CBuilder Trial. Everything installs ok, but if I want to execute a project I receive error &amp;quot;LMD[..].pas not found&amp;quot;.&lt;br /&gt;
To make it short:  You need a full version of CBuilder/Delphi to run any precompiled version (Trial ot SE). The VCL files in Borland Trials use a different DCU format than full versions. So many or almost all precompiled packages will fail to work on a CBuilder/Delphi Trialversion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[G4] A new free update is available, but you don't know where to download it. [or] You don't know where to find the protected download areas.  [o] You lost your license information or registration utility.&lt;br /&gt;
Up to LMD-Tools Version 4:&lt;br /&gt;
If you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with license file information where to download the installer. This download area is called 'protected download area' and you find there last version which is available for the package you registered (so it's important to place the download information at a save place). Besides purchasers from Zac Online find these informations in the info directory, file REGISTER.TXT. &lt;br /&gt;
When you purchased a disk version the required information can be found on a separate piece of paper called &amp;quot;Registration Information&amp;quot;. If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.&lt;br /&gt;
&lt;br /&gt;
Up to LMD Elpack 4:&lt;br /&gt;
You received with your registration license key and access data to customer areas.  If you lost your registration information please email providing your full postal and eMail address to which version was registered to.&lt;br /&gt;
&lt;br /&gt;
From LMD-Tools Version 4/LMD ElPack 5 on:&lt;br /&gt;
If you ordered your copy online, you received with your order a so called registration utility. After you installed the small setup.exe the file can be either started from the start menu (group &amp;quot;LMD-Tools&amp;quot;) or it can be found in the \bin directory below the installation folder (before LMD-Tools 6) or in the \system32 directory (search for lmd*.exe). Start this utility - it leads you to the download areas and provides required UserID and passwords. If you purchased a CD-Version this utility is automatically installed. If you ordered directly from us, the registration utility is also included on a separate disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[G5] You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.&lt;br /&gt;
&lt;br /&gt;
Up to LMD-Tools Version 4:&lt;br /&gt;
When you purchased your copy online (e.g. via Netsales or Compuserve SWREG) you received with registration information a license file (e.g. LMDTool3.lic). When you purchased a disk version this file is installed automatically. All update installer from the protected download areas check this file, so please make sure that license file is placed in your system directory (or rather System32 directory on Windows NT systems). When the update installer reports message above this file was not found and you have to reinstall this license file (please check description you received with your online order or reinstall any part of the disk version). If you lost your license file email us (providing your full address, serial# and dealer from whom you purchased your copy).&lt;br /&gt;
&lt;br /&gt;
From LMD-Tools Version 4 and LMD ElPack 5 on:&lt;br /&gt;
All update installer from the protected download areas check valid license file on target system, so please make sure that correct license file is located in your system directory (or rather System32 directory on Windows NT systems, license files are called lmdtool4.lic, lmdtool5std.lic and so on). If update installer reports message above, correct file was not found. If installed, the registration utility (LMD*.exe, can be found either in \bin directory below your LMD-Tools installation directory (before LMD-Tools 6)/system(32) directory or start it from the start menu, group LMD-Tools) reports information about available license files. &lt;br /&gt;
If valid license files are missing, simply reinstall the registration utility. If you lost your registration utility email us (providing your full address, serial# and dealer from whom you purchased your copy). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[G6] I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?&lt;br /&gt;
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== IDE Notes ==&lt;br /&gt;
&lt;br /&gt;
[I1] Corrupted/screwed Component Palette&lt;br /&gt;
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher&lt;br /&gt;
&lt;br /&gt;
Answer 1:&lt;br /&gt;
This problem is not a LMD-Tools issue but a Delphi problem in connection with a a very few number of certain graphic cards and drivers (caused by Delphi from a very large numbers of installed components on).&lt;br /&gt;
There are several ways to workaround:&lt;br /&gt;
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.&lt;br /&gt;
2.) If latest driver does not help: Advanced graphic drivers provide options to switch off certain optimization techniques. In this case Bitmap Caching options must be turned off. If option is not available, try to turn off hardware acceleration. If using device driver does not help the only way is to reduce number of installed components at the same time. If you own sourcecode you might use many options described in the installation HTML files of LMD-Tools to drastically reduce the number of installed components. Deinstall all other standard component packages which are not required as well (System must be rebooted each time to reflect changes to reinitialize bitmap cache).&lt;br /&gt;
&lt;br /&gt;
Answer 2:&lt;br /&gt;
There is a bug in some video card drivers in the way they handle the ImageList API. When an ImageList is being built in memory that cards will freeze the computer or corrupt the images when they have to swap the ImageList back out to main memory to complete the building on large imagelist's like the 180+ image component pallete list. The S3 chipset has been particularly problematic (Win98 is even worse). &lt;br /&gt;
Try these: &lt;br /&gt;
&lt;br /&gt;
1) Get the latest driver (www.s3.com or your vendor if your vendors doesn't work, try the S3 as they tend to be more compliant) &lt;br /&gt;
2) Start Delphi with the -ns switch &lt;br /&gt;
3) Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards) &lt;br /&gt;
4) Reboot in safe mode and start Delphi. Goto the properties of the component pallet and hide all the controls that you rarely use. This will reduce the imagelist that is getting built and might get you under the threshold. &lt;br /&gt;
5) reduce the hardware acceleration for the card. (display-&amp;gt;properties-&amp;gt;settings-&amp;gt;advances-&amp;gt;performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3). &lt;br /&gt;
7) Get the latest DirectX drivers. &lt;br /&gt;
8) After Delphi is started, change the color depth (you can change it right back) of your video card. &lt;br /&gt;
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors. &lt;br /&gt;
&lt;br /&gt;
If the BusThrottle works for you this is by far the best solution. All it does is instruct the driver that it must give a little time slice to the OS so affects on performance are not noticable (so far no one has reported back to me that they can even tell a difference between using and not using the BusThrottle setting except that Delphi runs). Unfortunately not all drivers respect this setting. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I2]  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help&lt;br /&gt;
You are running a Win9X/ME machine (on Windows NT/2K/XP this problem mostly happens in CBuilder only). The capability of index items in Windows Help system is limited on these operating systems (and LMD-Tools Index files are very large). There are two possible workarounds:&lt;br /&gt;
&lt;br /&gt;
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files&lt;br /&gt;
Use the Open Help tool from the Help menu to remove other unnecessary help index files (until Delphi/CBuilder helpfiles including LMD-Tools helpfile work again).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I3] You have tested a LMD-Tools Trialversion and uninstalled it. Though you are sure you removed all unit references and all LMD-Tools components from the forms of your project, you can't execute your app receiving the message that you're using a Trialversion of LMD-Tools.&lt;br /&gt;
Reason&lt;br /&gt;
Though you removed all references not all DCU's were updated (Delphi/CBuilder updates DCU's of a project only when original PAS files were changed).&lt;br /&gt;
&lt;br /&gt;
Solution&lt;br /&gt;
At first make sure that you really uninstalled trialversion completely to avoid version mix up (check especially runtime package files. In worst case follow detailed instructions in topic Uninstall LMD-Tools of the installation guide). If this is assured, simply recompile all files of the project to create new DCU's of all projects' files (if you fail do it the hard way: simply remove all *.dcu files from the projects' directory and restart the project). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[I4] After successful installation, errors like &amp;quot;Can't find entry point [..] in lmd50_d5.bpl&amp;quot; occur after starting Delphi/CBuilder IDE.&lt;br /&gt;
Delphi/CBuilder still has access to older runtime packages (means: You have multiple versions of this package on your system). If you encounter this problem, check your harddisk whether several versions of same runtime package are installed on your system. All LMD-Tools runtime packages start with LMD[..], so using the filter lmd*.bpl should work. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi Notes ==&lt;br /&gt;
&lt;br /&gt;
[D1] ToolBar97 components&lt;br /&gt;
The registered VCL Win32 versions of LMD-Tools include a license for the Toolbar97 components. Please note that no precompiled packages are installed during installation, simply install the DPK if you want to use the ToolBar97 components. The ToolBar97 units can be found in the \lib\toolb97 folder. Documentation can be found in HTML format in the \help folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D2]  The support request Nr. 1 for LMD-Tools 5: &lt;br /&gt;
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED&lt;br /&gt;
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. &lt;br /&gt;
Solution: Make sure that no path reference to an older LMD-Tools exist (check Environment Options|Library Path). The most secure way would be to uninstall any files of any previous version from your harddisk. Please rebuild your project completely to reflect new units. For detailed instructions read topic Uninstall LMD-Tools in installation guide.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D3]  I use SE or registered package, but still trial messages appear in my application outside IDE.&lt;br /&gt;
Reason and solution is simple: A full version or SE edition does not contain any trialcode, so a previously installed trialversion was not completely removed. To solve this problem in any case uninstall all LMD-Tools files from your harddisk (check installation.htm) and reinstall full version. Make sure that you REBUILD your project, so that new units are used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D4] You want to access enumerated properties like Options property of TLMDForm (wich display their value in object inspector like [foAutoShow, foAutoCenter]), but you don't know how to perform this at runtime.&lt;br /&gt;
The Options property of TLMDForm is used as example.&lt;br /&gt;
&lt;br /&gt;
[1] Check set of properties as follows:&lt;br /&gt;
&lt;br /&gt;
if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; &lt;br /&gt;
This line of code tests whether foAutoCenter flag is currently set.&lt;br /&gt;
&lt;br /&gt;
[2] Enable or disable a specific flag as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[D5] You receive during compilation an &amp;lt;i&amp;gt;&amp;quot;Unknown identifier...&amp;quot;&amp;lt;/i&amp;gt; for a procedure/function or type. You are sure that type name is correctly spelled.&lt;br /&gt;
In almost all cases the required unit - where the corresponding type is defined - is not included in the uses clause. &lt;br /&gt;
To solve this problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mark the affected identifier in the code editor&lt;br /&gt;
Press F1 to let Delphi automatically search for correct help entry. If correct help entry is not found immediately, mark the property or component name which you tried to change or use.&lt;br /&gt;
Read helptext and find out, in which unit the type or method is defined. Add this unit to the uses clause of the unit, where the compilation error occured.&lt;br /&gt;
Recompile your project again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D6]  You want to specify a new value to property at runtime. During compilation you received an error for incompatible (duplicate) types. You think that you used correct value and find out, that same name is used in different type definitions.&lt;br /&gt;
Example&lt;br /&gt;
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=sbKeepAspRatio;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You receive &amp;quot;Incompatible Types error -&amp;gt;TLMDBitmapStyle and TLMDOldBitmapStyle.&lt;br /&gt;
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:&lt;br /&gt;
You included both the lmdobj (supports old controls and units) and the lmdgraph unit in the uses clause of your unit. There are two ways to workaround this problem: Correct the order of the referenced units in the uses clause (place lmdgraph before lmdobj) or add lmdgraph before the type name of the corresponding type, e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDDBNImage1.Style:=lmdgraph.sbNone;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[D7] How to use TLMDStringStringList component correctly? How to add / remove items at runtime?&lt;br /&gt;
Against the VCL TStrings or TStringList objects the TLMDStringList class is a container for ANY number of TStrings objects. Component does not hold TStrings directly, but TLMDStringListItem objects which provide an Items property for the internal TStringlist object (use this Items property to get access to all properties and methods of the known TStringList oject).&lt;br /&gt;
&lt;br /&gt;
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--&amp;gt; declare as Integer).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.&lt;br /&gt;
&lt;br /&gt;
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write&lt;br /&gt;
LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because TLMDStringListItems array is default array you could also write&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items:=myExternalVCLStringList;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MyLabel.Caption:=LMDStringList1[myIndex].Items[5];&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'&lt;br /&gt;
LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TLMDStringList can handle many TLMDStringListItem objects. Using the .Add method as above you can add as many items as you like. To delete an item from the TLMDStringList class use the .Delete method. To delete the TLMDStringList object itself use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LMDStringList1.Delete(myIndex).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To insert a new item at a specific position (here at index 2) use e.g&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
myIndex:=LMDStringList1.Insert(2, nil);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the helpfile or use Code Completion in editor for other standard methods (like Move, LoadFromFile, SaveToFile etc.). Major advantage of using TLMDStringList is saving of large number of text snippets in one component and possibility to compress large large text snippets.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[D8] TLMDFormDisplay: How to access specific controls on forms?&lt;br /&gt;
The key for accessing specific controls on forms stored in the TLMDFormDisplay component is to typecast the active form. E.g. to access an Edit control on a form called TMyForm called Edit1 you have to typecast to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reason&lt;br /&gt;
The Internal Forms array or ActiveForm property use the abstract TCustomForm class. This fact allows you to add any form which is derived from TCustomForm to the TLMDFormDisplay component. The side effect is however, that TLMDFormDisplay control does not know of any special features which are available for a specific descendant (thus typecasting to desired form type is required). &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== CBuilder Notes ==&lt;br /&gt;
&lt;br /&gt;
[B1] CodeGuard Issues&lt;br /&gt;
Using CodeGuard you might encounter at designtime &amp;quot;Bitmap invalid&amp;quot; or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option,  &lt;br /&gt;
please disable tracking of the &amp;quot;memory block&amp;quot; resource, on the Resource Options Tab of CodeGuard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B2] LMD RichPack &lt;br /&gt;
After recompiling LMD RichPack packages, you might receive errors regarding CHARFORMAT2A types if you want to start an application using TLMDRichEdit components. Workaround: Simply enter in the header files Richedit:: before CHARFORMAT2A types (where compiler requires this). Example: &lt;br /&gt;
Change line...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void __fastcall GetAttributes(CHARFORMAT2A &amp;amp;Format);      &lt;br /&gt;
..to...&lt;br /&gt;
void __fastcall GetAttributes(Richedit::CHARFORMAT2A &amp;amp;Format);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B3] LMD ShellPack &lt;br /&gt;
Important: &lt;br /&gt;
If your application uses ShellPack components, the following line must be added in one of the units which contain ShellPack components (e.g. main unit of your application):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;LMDShellBCBSupport.hpp&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this header file is not included, an E2076 linker error will be generated.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B4] LMD TextPack &lt;br /&gt;
Important: &lt;br /&gt;
Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B5] LMD WebPack &lt;br /&gt;
Important: &lt;br /&gt;
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include &amp;lt;vcl.h&amp;gt; line in the header file of the main unit. Check example project for demonstration.&lt;br /&gt;
[2] If you use WinInet version of WebPack and you receive &amp;quot;Unresolved External&amp;quot; compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).&lt;br /&gt;
[3] Borland CBuilder does not add the path to ParsePack lib automatically. Please either add ParsePack (e.g. [..]\Lib\LMDParse30\B5) path to the project options or move ParsePack files to a common directory. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B6] TLMDHideNonVC &lt;br /&gt;
The TLMDHideNonVC component has no functionality in LMD-Tools for CBuilder 5 and is included for the sake of compatability only. In the version for C++ Builder 6 this component is no longer included.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[B7] TLMDFormDisplay&lt;br /&gt;
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD-Tools&amp;diff=3814</id>
		<title>LMD 2004 - History LMD-Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD_2004_-_History_LMD-Tools&amp;diff=3814"/>
				<updated>2017-08-18T10:03:55Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: Created page with &amp;quot;{{HEAD-ResOnly}}  == Introduction ==  This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
=== LMD-Tools Core 7.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.10 (06-June-2007) ====&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Transparent (first) display of TLMDCalendarComboBox fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.00 (20-May-2007) ====&lt;br /&gt;
[+] OnMouseActivate and OnContextPopUp property events added to several controls&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional D2k7 and Vista adaptions&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60A (20-Mar-2007) ====&lt;br /&gt;
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60 (07-Mar-2007) ====&lt;br /&gt;
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.51 (05-Feb-2007) ====&lt;br /&gt;
[-] TLMDFormVistaExtension functionality integrated again&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.50 (19-Jan-2007) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Numberbase related minor fixes;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtSpinEdit and descendants =====&lt;br /&gt;
[+] CurrencySettings made published;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnChange issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.01 (21-Dec-2006) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12 (14-Dec-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[+] New control: TLMDTaskDialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New control: TLMDFormVistaExtension&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Display problem in DB descendants fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDockLabel =====&lt;br /&gt;
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)&lt;br /&gt;
[+] Number bases other than 10 now supported for all meFloat* masks.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deleting whole text in meInteger is now correctly handled.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check for rounding moved from ChangedText to asFloat.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ReadDate, WriteDate cleaned up &amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display after changing MaskType. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display when control was just loaded. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several .net compatibility fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileOpenEdit, TLMDFileSaveEdit =====&lt;br /&gt;
[+] StartWithLastName, StartWithLastPath properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHideNonVC =====&lt;br /&gt;
[-] Access Violation problem in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Artefact problem with hints fixed &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.11 (16-Nov-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[*] Several changes to ensure Windows Vista compatibility. Another planned update (7.12) will be released in December which will contain additional improvements (mainly concerning UAC handling for system controls). Another known problem in Vista RC release: Tracing property of Font3D/Fx objects may not work properly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 453 (several memory leaks) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Process termination issue fixed (BDS2006 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox) =====&lt;br /&gt;
[*] BTS #462 --&amp;gt; Clear method updated&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-]Minor fix for overwrite mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #458 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional position checkings - ensures that form is always completely visible on desktop.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit  =====&lt;br /&gt;
[-] Issues in Currency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar =====&lt;br /&gt;
[-] Missing Mouse events added&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.10 (25-Sep-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent:  =====&lt;br /&gt;
  - CPU 100% usage issue fixed (BTS #444)&lt;br /&gt;
  - Lost alarm list items when deactivating issue fixed&lt;br /&gt;
  - Thread is no longer active when control is disabled&lt;br /&gt;
  + LMDAlarmItem.PassTimes property added&lt;br /&gt;
  + ResetItems method added&lt;br /&gt;
&lt;br /&gt;
===== TLMDAssist  =====&lt;br /&gt;
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonControl (CheckBox, RadioGroup and all similar controls) =====&lt;br /&gt;
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboBox and descendants =====&lt;br /&gt;
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[*] Switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.00 (18-Aug-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButton  =====&lt;br /&gt;
[-] Issue reported in BTS #379 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBExtSpinEdit =====&lt;br /&gt;
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[+] DropDownStyle property added (BTS #378)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDIniCtrl =====&lt;br /&gt;
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SectionsExists and ValueExists methods added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBarComboBox =====&lt;br /&gt;
[-] Problem with non-default MinValues (&amp;lt;10) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDWndButtonShape =====&lt;br /&gt;
[-] OffsetDirection property (BTS #376) &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.05.00 (10-Apr-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Missing check for Active state added;&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDClock =====&lt;br /&gt;
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomGroup and descendants =====&lt;br /&gt;
[*] Columns number &amp;gt;12 is possible now.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomListComboBox =====&lt;br /&gt;
[-] Control does no longer lose items when handle of control is recreated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBLight =====&lt;br /&gt;
[+] ValueChecked property added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBSwitch =====&lt;br /&gt;
[+] ValueChecked/ValueUnChecked properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFaceController =====&lt;br /&gt;
[-] AVs at designtime in certain situations fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit =====&lt;br /&gt;
[-] Problem with &amp;quot;-&amp;quot; characters in number masks fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] moving current pos while pressing &amp;quot;-&amp;quot; in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] inserting first char instead of overwriting in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] stopping at decimalsep while deleting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] extra zeroes while overwriting decimalsep fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fractional part deletion when single digit before decimalsep is deleted fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes in Currency mode.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMouseFencer =====&lt;br /&gt;
[*] Minor change as suggested in BTS #375-&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStaticText =====&lt;br /&gt;
[*] BTS #374 (Visible property published). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.04.00 (27-Feb-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[*] Items Date and Time made public &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBrowseDlg  =====&lt;br /&gt;
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New system folders added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomRadioGroup and descendants =====&lt;br /&gt;
[-] Fixed focus setting when ItemIndex changes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHTMLLabel =====&lt;br /&gt;
[+] LineGap property added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.10 (16-Feb-2006) ====&lt;br /&gt;
===== This release was made available for LMD-Tools SE user only. =====&lt;br /&gt;
&lt;br /&gt;
[-] BTS #363 (TLMDLEDLabel issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Broken Caption / Hint editor in VCL.NET releases fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.02 (17-Jan-2006) ====&lt;br /&gt;
===== This release is especially intented for C++ user of BDS 2006. =====&lt;br /&gt;
&lt;br /&gt;
===== LMDSysIn.pas =====&lt;br /&gt;
[-] Linkage problem in BDS2006 for C++ personality fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp =====&lt;br /&gt;
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[+] AutoFocus property added (FRT #46)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton and descendants =====&lt;br /&gt;
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.01 (21-Nov-2005) ====&lt;br /&gt;
LMD-Tools SE assembly (VCL.NET and SE version only)&lt;br /&gt;
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).&lt;br /&gt;
&lt;br /&gt;
===== TLMDFontSizeComboBox =====&lt;br /&gt;
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.00 (14-Nov-2005) ====&lt;br /&gt;
===== TLMDAssist =====&lt;br /&gt;
[+] Transparent and CtlXP support added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomButton =====&lt;br /&gt;
[*] Focus is no longer drawn when button is disabled&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskCheck property added (if enabled, pressing Enter key will force a validation of the current input. Previously mask was only tested when user exits control).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskValidation method added. Use this method to case mask validation via code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImagelist(Item) =====&lt;br /&gt;
[-] BTS# 322 fixed (problem with custom memory manager, e.g. FastMM). This workaround should also fix similar problem with CodeGuard in CBuilder 5 and 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar(Object) =====&lt;br /&gt;
[+] New property BarWidth. Allows specification of with (in vertical) or height (in horizontal mode) of scrollbar. Especially useful e.g. in TLMDCustomMemo and derived controls to change the width/height of inner scrollbars. Use values of 0 or less to let control determine system settings for scrollbars.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TextPack components&lt;br /&gt;
For several TextPack components additional properties from ancestor controls were published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.02.00 (25-Aug-2005) ====&lt;br /&gt;
General Change: XP Theme support&lt;br /&gt;
The XP Theme support was redesigned due to a bug in Windows XP Theme support. To workaround this, LMD-Tools controls do no longer use dynamic handles for drawing themed items. Problems like reported in BTS #245 should be therefore solved from this release on.&lt;br /&gt;
&lt;br /&gt;
===== TLMDAboutDlg =====&lt;br /&gt;
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure MyForm.AboutCustomize (Sender:TObject); &lt;br /&gt;
begin&lt;br /&gt;
  with TForm (Sender) do&lt;br /&gt;
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';&lt;br /&gt;
  [..]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deletion of alarm dates problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.) =====&lt;br /&gt;
[-] Visible problem with Twinkle/Transparent enabled at same time fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Twinkle effect is no longer shown at design time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit =====&lt;br /&gt;
[-] BTS# 262 (invisible first character issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo (and descendants) =====&lt;br /&gt;
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendarEdit =====&lt;br /&gt;
[-] OnDlgClose problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons =====&lt;br /&gt;
[-] BTS# 245 (xp theme issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Structural changes concerning XP themes handling&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDBEdit and -Memo (and descendants) =====&lt;br /&gt;
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 310 (DisplayText issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 306 (inserting garbage in certain cases) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBMaskedEdit =====&lt;br /&gt;
[-] TBCDField issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileCtrl =====&lt;br /&gt;
[+] Property &amp;quot;FileStampFormat&amp;quot; added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileGrep =====&lt;br /&gt;
[-] Filesizes &amp;gt;2GB are now supported. FileSize properties are now of Int64 type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay =====&lt;br /&gt;
[-] BTS# 041 (action shortcuts issue) fixed - TLMDFormDisplay.NewWndProc changed; with this change and correct use of flags (HookWindowProc = True, UseResForms = True) action shortcuts work correct&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShapeControl =====&lt;br /&gt;
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTipDlg =====&lt;br /&gt;
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Empty lines in Tips list are always skipped now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01.10 (27-May-2005) ====&lt;br /&gt;
===== All (focusable) button controls =====&lt;br /&gt;
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] OnMonthChange problem fixed (BTS #286)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckBox, TLMDRadioButton and other glyph/text controls =====&lt;br /&gt;
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShape- and MessageHint =====&lt;br /&gt;
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01  (20-Apr-2005) ====&lt;br /&gt;
VCL.NET release of core controls introduced.&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel =====&lt;br /&gt;
[+] Support of OnMouse* events added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ClientPanel property (public, read-only) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDGlyphLabel =====&lt;br /&gt;
[-] Wordwrap problem in multiline mode when image is shown fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImage- and BitmapList =====&lt;br /&gt;
[+] New PixelFormat: spf16bit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Header sections are now shown when ListBox is placed on TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
[-] 25 can now be set for HeaderHeight property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMemo =====&lt;br /&gt;
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ButtonTitles problem fixed. Button captions must be specified in same order as TMsgDlgBtn is defined: 0. mbYes, 1. mbNo, 2. mbOK, 3. mbCancel, 4. mbAbort, 5. mbRetry, 6. mbIgnore, 7. mbAll, 8. mbNoToAll, 9. mbYesToAll, 10. mbHelp (for Hints property: 11. Glyph/MessageText)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Gradient settings with ColorLists work now correctly inside TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====&lt;br /&gt;
General Change: Label controls&lt;br /&gt;
Until this release code for AutoSize property was processed even if Align&amp;lt;&amp;gt;alNone. This was changed. Refers to BTS #240&lt;br /&gt;
&lt;br /&gt;
===== TLMD3DEffectButton =====&lt;br /&gt;
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[-] Date conversion with suffixes improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCurrencySettings =====&lt;br /&gt;
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDPopupMenu =====&lt;br /&gt;
[+] OnAfterPopup event&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioGroup =====&lt;br /&gt;
[-] Shift-Tab handling was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextEditDlg =====&lt;br /&gt;
[+] OnCustomize event; the Sender parameter contains reference to the shown form. You can typecast it e.g. via with TLMDFrmTextEditor(Sender) do...; and modify any kind of visual appeance of the dialog. Make sure that LMDTextEditor unit was added to uses clause. Check also this unit to review which controls are located on this form.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] AlwaysReturnText property. Enable this property if no ModalResult button is available on dialog (e.g. via teBottomPanel option). Always Text of memo in dialog control is set to Text property.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New flags for Options property: [1] teStatusBar (displays statusbar) [2] teBottomPanel (displays bottom panel with Ok, Cancel and optional Custom button). Note: teStatusBar and teBottomPanel should not be enabled at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPack controls =====&lt;br /&gt;
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDTextRadioGroup display problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60a (24-Sep-2004) ====&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[-] Retrieving Value property fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== LMDUtils.pas =====&lt;br /&gt;
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60 (17-Sep-2004) ====&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] Drawing of small items when SmallGlyph is assigned fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional minor changes in control and component editor&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[+] AllowAllUp property for Buttons items added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[*] Improved TabStop behaviour&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomContainer (and derived controls) =====&lt;br /&gt;
[*] Assign method was changed, so that component editors of main controls work now in derived controls &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Problem with previously open tables fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
Control is now able to display text even if no sections are defined at all.&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[+] CtlXP property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Escape key now already closes dialog and returns mrCancel result&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Default positioning was changed in various ways&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Yes to All/No to All buttons are now supported&amp;lt;br&amp;gt;&lt;br /&gt;
[-] If no buttons for display are specified -&amp;gt; ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioButton =====&lt;br /&gt;
[-]  Minor bug fixed when Checked is disabled via code while control is focused&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSendKeys =====&lt;br /&gt;
[+] {SPACE} key identifier supported&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[+] CtlXP property (for drawing of sizegrip) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSysMenu =====&lt;br /&gt;
[-] Problem with ForceUpdate method in Menu mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTreeComboBox =====&lt;br /&gt;
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.59 (30-June-2004) ====&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButtons =====&lt;br /&gt;
[*] Several changes in connection with DropDownMenus&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckListComboBox =====&lt;br /&gt;
[*] AutoHeight feature for different font heights now enabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboExt (and all descendants) =====&lt;br /&gt;
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] On creating a date string it happened that an access to an empty string with fmt_str[1] was made. Now datetostr will work if the date has a &amp;quot;suffix&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[-] Frame around Checklistbox now longer hidden when items are deleted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[+] AutoResizePanes property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPrinter =====&lt;br /&gt;
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.58 (19-May-2004) ====&lt;br /&gt;
[ParsePack]&lt;br /&gt;
Several HTML output issues fixed&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants =====&lt;br /&gt;
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.57 (11-May-2004) ====&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[-] AddButton/InsertButton AV fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel  =====&lt;br /&gt;
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomBevelPanel and descendants =====&lt;br /&gt;
[+] NoHandleUpdate property. Enable this property if handle of panel should be kept when Bevel settings are changed. This property might beuseful e.g. when an edit control is placed within a panel and panel width should be changed when enduser enters/exits edit field.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEdit =====&lt;br /&gt;
[-]  Insert after AutoSelect and right key now at the correct, position, left key (first char of text is selected, pos on that one) will remove the selection now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEditAutoComplete =====&lt;br /&gt;
[-] Problem with empty strings in Popup mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[-] SaveResources mode was always on, this was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 SourcePack (16-Feb-2004) ====&lt;br /&gt;
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Edit/Memos]&lt;br /&gt;
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Performance drop when using WinXP Themes solved&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Cursor problem when Memo was ActiveControl on a form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 (19-Jan-2004) ====&lt;br /&gt;
[*] DBSpeedButtons provides now ButtonStyle property &amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnContextPopup is generated in BaseEdit and descendants&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CaptionButtons problem with Arrow buttons fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV when setting Active property in TrayIcon component fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomPanelFill update at designtime fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD BarPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03.00 (07-Mar-2007) ====&lt;br /&gt;
[*] Several performance improvements, Delphi 2007 compatibility.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02.00 (25-Feb-2006) ====&lt;br /&gt;
===== TLMDBarHTMLLabel =====&lt;br /&gt;
[+] LineGap property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDExplorerBarSections =====&lt;br /&gt;
[+] Margin property added (specifies border in sections)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] InfoLineGap property added. Allow specification of line gaps in Information label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.60 (30-May-2005) ====&lt;br /&gt;
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.54 (08-Dec-2004) ====&lt;br /&gt;
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.53 (10-Sep-2004) ====&lt;br /&gt;
[-] AVs fixed during running animations&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Glyphs assigned to control's Glyph properties are now used correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.52 (30-June-2004) ====&lt;br /&gt;
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.51 (21-May-2004) ====&lt;br /&gt;
[-] Repaint problem in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.50 (21-Apr-2004) ====&lt;br /&gt;
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small resource Leak in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.01 (28-July-2003) ====&lt;br /&gt;
[-] LMDBarCtlXPSupported function can be used to check whether Themes is available and enabled for current application (defined in LMDBarBase). This method was accidentally used in ExplorerBar demo in first release but now made public.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
===== Initial Release. =====&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDDesignPanel: &amp;quot;Autoscroll&amp;quot; property not persistent fixed (BDS2006)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.00 (31-Oct-2005) ====&lt;br /&gt;
[-] Workaround for custom memory manager (Fast MM) problem added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.01 (21-Apr-2005) ====&lt;br /&gt;
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.00 (10-Sep-2004) ====&lt;br /&gt;
[+] ReadOnly property for diagram controls&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.20.00 (23-Jun-2004) ====&lt;br /&gt;
Feature Update! Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.10.00 (06-Jan-2004) ====&lt;br /&gt;
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.20 (09-Aug-2003) ====&lt;br /&gt;
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD FxPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
Initial Release (08-Dec-2004)&lt;br /&gt;
No updates available yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.60 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.50 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDRichEdit: Changes in FindText and ReplaceText method. New default for options parameter is [searchDown]. Thus FoundAt:= Editor.FindText( 'LMD', 0, Length(Editor.Lines.Text)); will search for the first occurence of 'LMD'. If searchDown flag is not set, search is processed from StartPos towards beginning of the document (RichEdit DLL version 2 or better required). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 7.03.02 release of LMD-Tools an additional Demo (Delphi\RichEdit_Execute) was added for demonstrating a way to encapsulate RTF dialog in a method (such Execute methods will be part of the next major RichPack release).&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.10 (25-Feb-2006) ====&lt;br /&gt;
[+] Numbering actions: FirstIndent/LeftIndent properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.00 (15-Nov-2005) ====&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] BTS #317 fixed (scrollbar problem with different dpi settings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (25-August-2005) ====&lt;br /&gt;
[TLMDRichLabel and descendants]&lt;br /&gt;
[*] Cursor property functionality enabled in RichLabel controls as used in VCL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEdit and descendants]&lt;br /&gt;
[+] ShowDefaultPopup property: If enabled, no default menu is shown.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnBeforeSave, OnAfterSave events. Use the later one if you want to switch off automatic optimizing of RichText display after save operations (which could lead to movement of scrollbar etc., though). Simply set skipDefaultBehaviour value to true in this case.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEditActions]&lt;br /&gt;
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.61 (12-May-2005) ====&lt;br /&gt;
Fix in label controls where after special characters links were no longer recognized.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.60 (15-Mar-2005) ====&lt;br /&gt;
[-] Various fixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.51 (24-Sep-2004) ====&lt;br /&gt;
[-] AV with TLMDRichEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.50 (14-Sep-2004) ====&lt;br /&gt;
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several other minor bugfixes and changes for VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.11 (30-Jun-2004) ====&lt;br /&gt;
[-] Several minor bugfixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (30-Mar-2004) ====&lt;br /&gt;
[*] TLMDRichLabel link handling changed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (29-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[*] RTFText property reintroduced&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel and descendants]&lt;br /&gt;
[-] Several problems with bevel painting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Storage Controls, Collection Editor]&lt;br /&gt;
[+] You can open editor for an item via double click instead via object inspector now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (08-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] several position and TLMDRuler issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] Resizing problems fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[HyperText]&lt;br /&gt;
[+] Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.00 (09-Dec-2003) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] Ability to past raw text improved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed several bugs with non-English charset.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] procedure InsertGraphic(aGraphic: TGraphic);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] improved display in transparent &amp;amp; smoothing mode&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed bug with change of DeltaX and DeltaY values&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] Division by Zero error fixed which happened eventually when loading different text snippets&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar initialization when loading different files corrected&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichSyntaxEdit]&lt;br /&gt;
[*] processing non-standard keywords, work scheme and work speed improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Hint]&lt;br /&gt;
[*] You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (23-Nov-2003) ====&lt;br /&gt;
[-] bug fixed: put link text to Clipboard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] bug fixed: clear selection with links&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDRichScrollBox: flickering when using scrollbars reduced&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed several bugs with Indents.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.01 (19-Jan-2007) ====&lt;br /&gt;
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (12-Nov-2006) ====&lt;br /&gt;
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:&amp;lt;br&amp;gt;&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); --&amp;gt;  sort after column of type aColumn, e.g. sh.SortColumn(cdName);&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
  procedure SortColumn(aIndex:Integer); --&amp;gt; sort after column with index aIndex, e.g. sh.SortColumn(1);&lt;br /&gt;
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
[-] TLMDShellList: Problem with frames fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.50 (25-Feb-2006) ====&lt;br /&gt;
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (17-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes, VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SearchPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.04.10 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDSearchFileGrep: AV on locked files fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.50 (14-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.10 (04-Jul-2004) ====&lt;br /&gt;
[TLMDSearchFileGrep] (suggested by ConDev)&lt;br /&gt;
[+] property TemplateValid : Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] property OnTemplateInvalid : TNotifyEvent&amp;lt;br&amp;gt;&lt;br /&gt;
If upon assignment of &amp;quot;SearchString&amp;quot; the template parsing fails, the &amp;quot;TemplateValid&amp;quot; property is set accordingly.&lt;br /&gt;
In addition the &amp;quot;OnTemplateInvalid&amp;quot; event is used to suppress former message (or let the user decide what error message pops up)&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03 (20-Oct-2003) ====&lt;br /&gt;
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but&amp;lt;br&amp;gt;&lt;br /&gt;
contents of file could not be checked.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.02 (30-Aug-2003) ====&lt;br /&gt;
[-] Fixed: Skip character after found wildcard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: Result list fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01 (19-May-2003) ====&lt;br /&gt;
[-] Problem with search expression starting at first position fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] MatchCase bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.50 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDSysPrinter info display corrected &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] pfWinVista added for TLMDSysPlatform type&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.00 (17-Jan-2006) ====&lt;br /&gt;
[-] BTS# 284 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.52 (24-Sep-2004) ====&lt;br /&gt;
[-] Fix for AV in SysMemoryObject&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem in TLMDSysTimeZone fixed (BTS #146)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.51 (14-Sep-2004) ====&lt;br /&gt;
[*] Changes in memory detection routines&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.50 (20-Apr-2004) ====&lt;br /&gt;
[TLMDSysInfoListView ]&lt;br /&gt;
[+] ShowDescriptionColumn property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Columns property made public&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDSysNetworkEnumerator]&lt;br /&gt;
[+] OnEnumItem event&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CancelThread method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.20 (19-Jan-2007) ====&lt;br /&gt;
[-] Small memory leaks in TLMDStorXML.Parse fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.30 (25-July-2005) ====&lt;br /&gt;
[TLMDStorXMLVault]&lt;br /&gt;
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to &amp;lt;LMDStorageData&amp;gt; and &amp;lt;/LMDStorageData&amp;gt;). Use with care for existing applications!&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Release 1.08.10 (27-May-2005) ====&lt;br /&gt;
[TLMDStorINIVault]&lt;br /&gt;
[-] Bug with corrupting INI file after list properties fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.00 (17-Sep-2004) ====&lt;br /&gt;
[TLMDStorPropertiesStorage]&lt;br /&gt;
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.&amp;lt;br&amp;gt;&lt;br /&gt;
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.&lt;br /&gt;
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDOSReader.OnNotFound event added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.07.00 (10-July-2004) ====&lt;br /&gt;
[+] OnCustomRootRead &amp;amp; OnCustomRootWrite events for Vault controls. Allow specification of custom root control.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDStorPropertiesStorage: Frames are supported now.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several bugfixes in Vault controls.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDStorage-Base64 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.50 (30-Mar-2004) ====&lt;br /&gt;
[-] &amp;quot;Data not found&amp;quot; bug when no active section was set fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.40 (29-Jan-2004) ====&lt;br /&gt;
[-] XML-Parser: Problem with &amp;lt;CR&amp;gt; in properties fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Chars [#0..#31,'%','&amp;quot;'] stores now in vault controls as %00..%1F,%25...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.30 (31-Dec-2003) ====&lt;br /&gt;
[-] Problem with doubled attributes in XML files solved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.20 (04-Nov-2003) ====&lt;br /&gt;
[-] Fixes in Visual designer, e.g.compatbility with TChart control&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06 (20-Oct-2003) ====&lt;br /&gt;
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Stack overflow in certain conditions in visual design editor fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.05 (05-Sep-2003) ====&lt;br /&gt;
[LMDStorBase.pas TLMDAbstractStorageVault]&lt;br /&gt;
[*] Fixed procedure SetFileName - now file name isn't stripped during loading&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Add new property &amp;quot;AutoUpdate&amp;quot; in base storage class  TLMDAbstractStorageVault. It is used by INI and XML vaults to toggle save mode between update after each property change (slow) and cached writing (fast).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorINIVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorXMLVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.04 (25-July-2003) ====&lt;br /&gt;
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03 (02-July-2003) ====&lt;br /&gt;
[-] Minor Problems with dynamic objects were fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02 (01-July-2003) ====&lt;br /&gt;
[-] Problems with XML format were fixed (quoted strings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.01 (19-May-2003) ====&lt;br /&gt;
[-] Bug in visual design editor which caused an infinity loop was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.01 (21-Apr-2005) ====&lt;br /&gt;
[*] Minor changes in TLMDDownload class&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (15-Sep-2004) ====&lt;br /&gt;
[*] Many changes for VCL.NET compatbility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.20 (30-Mar-2004) ====&lt;br /&gt;
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.10 (28-Jan-2004) ====&lt;br /&gt;
[-] URL decode function fixed (e.g. for Scan control)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor problem with Charset in Download Form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Unnecessary calls in RAS support removed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (20-Oct-2003) ====&lt;br /&gt;
[-] Several minor bugs fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (15-Sep-2003) ====&lt;br /&gt;
[-] News demos for Delphi updated. In source version english resource file is by default installed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDWebHTTPScan: Memory leak fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDWebHTTPScan.Clear method added.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3813</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3813"/>
				<updated>2017-08-18T10:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3812</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3812"/>
				<updated>2017-08-18T10:03:02Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
=== LMD-Tools Core 7.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.10 (06-June-2007) ====&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Transparent (first) display of TLMDCalendarComboBox fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.00 (20-May-2007) ====&lt;br /&gt;
[+] OnMouseActivate and OnContextPopUp property events added to several controls&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional D2k7 and Vista adaptions&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60A (20-Mar-2007) ====&lt;br /&gt;
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60 (07-Mar-2007) ====&lt;br /&gt;
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.51 (05-Feb-2007) ====&lt;br /&gt;
[-] TLMDFormVistaExtension functionality integrated again&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.50 (19-Jan-2007) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Numberbase related minor fixes;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtSpinEdit and descendants =====&lt;br /&gt;
[+] CurrencySettings made published;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnChange issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.01 (21-Dec-2006) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12 (14-Dec-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[+] New control: TLMDTaskDialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New control: TLMDFormVistaExtension&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Display problem in DB descendants fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDockLabel =====&lt;br /&gt;
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)&lt;br /&gt;
[+] Number bases other than 10 now supported for all meFloat* masks.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deleting whole text in meInteger is now correctly handled.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check for rounding moved from ChangedText to asFloat.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ReadDate, WriteDate cleaned up &amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display after changing MaskType. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display when control was just loaded. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several .net compatibility fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileOpenEdit, TLMDFileSaveEdit =====&lt;br /&gt;
[+] StartWithLastName, StartWithLastPath properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHideNonVC =====&lt;br /&gt;
[-] Access Violation problem in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Artefact problem with hints fixed &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.11 (16-Nov-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[*] Several changes to ensure Windows Vista compatibility. Another planned update (7.12) will be released in December which will contain additional improvements (mainly concerning UAC handling for system controls). Another known problem in Vista RC release: Tracing property of Font3D/Fx objects may not work properly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 453 (several memory leaks) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Process termination issue fixed (BDS2006 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox) =====&lt;br /&gt;
[*] BTS #462 --&amp;gt; Clear method updated&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-]Minor fix for overwrite mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #458 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional position checkings - ensures that form is always completely visible on desktop.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit  =====&lt;br /&gt;
[-] Issues in Currency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar =====&lt;br /&gt;
[-] Missing Mouse events added&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.10 (25-Sep-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent:  =====&lt;br /&gt;
  - CPU 100% usage issue fixed (BTS #444)&lt;br /&gt;
  - Lost alarm list items when deactivating issue fixed&lt;br /&gt;
  - Thread is no longer active when control is disabled&lt;br /&gt;
  + LMDAlarmItem.PassTimes property added&lt;br /&gt;
  + ResetItems method added&lt;br /&gt;
&lt;br /&gt;
===== TLMDAssist  =====&lt;br /&gt;
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonControl (CheckBox, RadioGroup and all similar controls) =====&lt;br /&gt;
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboBox and descendants =====&lt;br /&gt;
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[*] Switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.00 (18-Aug-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButton  =====&lt;br /&gt;
[-] Issue reported in BTS #379 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBExtSpinEdit =====&lt;br /&gt;
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[+] DropDownStyle property added (BTS #378)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDIniCtrl =====&lt;br /&gt;
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SectionsExists and ValueExists methods added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBarComboBox =====&lt;br /&gt;
[-] Problem with non-default MinValues (&amp;lt;10) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDWndButtonShape =====&lt;br /&gt;
[-] OffsetDirection property (BTS #376) &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.05.00 (10-Apr-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Missing check for Active state added;&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDClock =====&lt;br /&gt;
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomGroup and descendants =====&lt;br /&gt;
[*] Columns number &amp;gt;12 is possible now.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomListComboBox =====&lt;br /&gt;
[-] Control does no longer lose items when handle of control is recreated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBLight =====&lt;br /&gt;
[+] ValueChecked property added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBSwitch =====&lt;br /&gt;
[+] ValueChecked/ValueUnChecked properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFaceController =====&lt;br /&gt;
[-] AVs at designtime in certain situations fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit =====&lt;br /&gt;
[-] Problem with &amp;quot;-&amp;quot; characters in number masks fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] moving current pos while pressing &amp;quot;-&amp;quot; in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] inserting first char instead of overwriting in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] stopping at decimalsep while deleting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] extra zeroes while overwriting decimalsep fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fractional part deletion when single digit before decimalsep is deleted fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes in Currency mode.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMouseFencer =====&lt;br /&gt;
[*] Minor change as suggested in BTS #375-&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStaticText =====&lt;br /&gt;
[*] BTS #374 (Visible property published). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.04.00 (27-Feb-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[*] Items Date and Time made public &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBrowseDlg  =====&lt;br /&gt;
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New system folders added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomRadioGroup and descendants =====&lt;br /&gt;
[-] Fixed focus setting when ItemIndex changes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHTMLLabel =====&lt;br /&gt;
[+] LineGap property added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.10 (16-Feb-2006) ====&lt;br /&gt;
===== This release was made available for LMD-Tools SE user only. =====&lt;br /&gt;
&lt;br /&gt;
[-] BTS #363 (TLMDLEDLabel issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Broken Caption / Hint editor in VCL.NET releases fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.02 (17-Jan-2006) ====&lt;br /&gt;
===== This release is especially intented for C++ user of BDS 2006. =====&lt;br /&gt;
&lt;br /&gt;
===== LMDSysIn.pas =====&lt;br /&gt;
[-] Linkage problem in BDS2006 for C++ personality fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp =====&lt;br /&gt;
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[+] AutoFocus property added (FRT #46)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton and descendants =====&lt;br /&gt;
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.01 (21-Nov-2005) ====&lt;br /&gt;
LMD-Tools SE assembly (VCL.NET and SE version only)&lt;br /&gt;
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).&lt;br /&gt;
&lt;br /&gt;
===== TLMDFontSizeComboBox =====&lt;br /&gt;
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.00 (14-Nov-2005) ====&lt;br /&gt;
===== TLMDAssist =====&lt;br /&gt;
[+] Transparent and CtlXP support added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomButton =====&lt;br /&gt;
[*] Focus is no longer drawn when button is disabled&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskCheck property added (if enabled, pressing Enter key will force a validation of the current input. Previously mask was only tested when user exits control).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskValidation method added. Use this method to case mask validation via code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImagelist(Item) =====&lt;br /&gt;
[-] BTS# 322 fixed (problem with custom memory manager, e.g. FastMM). This workaround should also fix similar problem with CodeGuard in CBuilder 5 and 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar(Object) =====&lt;br /&gt;
[+] New property BarWidth. Allows specification of with (in vertical) or height (in horizontal mode) of scrollbar. Especially useful e.g. in TLMDCustomMemo and derived controls to change the width/height of inner scrollbars. Use values of 0 or less to let control determine system settings for scrollbars.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TextPack components&lt;br /&gt;
For several TextPack components additional properties from ancestor controls were published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.02.00 (25-Aug-2005) ====&lt;br /&gt;
General Change: XP Theme support&lt;br /&gt;
The XP Theme support was redesigned due to a bug in Windows XP Theme support. To workaround this, LMD-Tools controls do no longer use dynamic handles for drawing themed items. Problems like reported in BTS #245 should be therefore solved from this release on.&lt;br /&gt;
&lt;br /&gt;
===== TLMDAboutDlg =====&lt;br /&gt;
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure MyForm.AboutCustomize (Sender:TObject); &lt;br /&gt;
begin&lt;br /&gt;
  with TForm (Sender) do&lt;br /&gt;
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';&lt;br /&gt;
  [..]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deletion of alarm dates problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.) =====&lt;br /&gt;
[-] Visible problem with Twinkle/Transparent enabled at same time fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Twinkle effect is no longer shown at design time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit =====&lt;br /&gt;
[-] BTS# 262 (invisible first character issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo (and descendants) =====&lt;br /&gt;
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendarEdit =====&lt;br /&gt;
[-] OnDlgClose problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons =====&lt;br /&gt;
[-] BTS# 245 (xp theme issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Structural changes concerning XP themes handling&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDBEdit and -Memo (and descendants) =====&lt;br /&gt;
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 310 (DisplayText issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 306 (inserting garbage in certain cases) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBMaskedEdit =====&lt;br /&gt;
[-] TBCDField issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileCtrl =====&lt;br /&gt;
[+] Property &amp;quot;FileStampFormat&amp;quot; added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileGrep =====&lt;br /&gt;
[-] Filesizes &amp;gt;2GB are now supported. FileSize properties are now of Int64 type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay =====&lt;br /&gt;
[-] BTS# 041 (action shortcuts issue) fixed - TLMDFormDisplay.NewWndProc changed; with this change and correct use of flags (HookWindowProc = True, UseResForms = True) action shortcuts work correct&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShapeControl =====&lt;br /&gt;
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTipDlg =====&lt;br /&gt;
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Empty lines in Tips list are always skipped now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01.10 (27-May-2005) ====&lt;br /&gt;
===== All (focusable) button controls =====&lt;br /&gt;
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] OnMonthChange problem fixed (BTS #286)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckBox, TLMDRadioButton and other glyph/text controls =====&lt;br /&gt;
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShape- and MessageHint =====&lt;br /&gt;
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01  (20-Apr-2005) ====&lt;br /&gt;
VCL.NET release of core controls introduced.&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel =====&lt;br /&gt;
[+] Support of OnMouse* events added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ClientPanel property (public, read-only) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDGlyphLabel =====&lt;br /&gt;
[-] Wordwrap problem in multiline mode when image is shown fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImage- and BitmapList =====&lt;br /&gt;
[+] New PixelFormat: spf16bit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Header sections are now shown when ListBox is placed on TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
[-] 25 can now be set for HeaderHeight property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMemo =====&lt;br /&gt;
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ButtonTitles problem fixed. Button captions must be specified in same order as TMsgDlgBtn is defined: 0. mbYes, 1. mbNo, 2. mbOK, 3. mbCancel, 4. mbAbort, 5. mbRetry, 6. mbIgnore, 7. mbAll, 8. mbNoToAll, 9. mbYesToAll, 10. mbHelp (for Hints property: 11. Glyph/MessageText)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Gradient settings with ColorLists work now correctly inside TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====&lt;br /&gt;
General Change: Label controls&lt;br /&gt;
Until this release code for AutoSize property was processed even if Align&amp;lt;&amp;gt;alNone. This was changed. Refers to BTS #240&lt;br /&gt;
&lt;br /&gt;
===== TLMD3DEffectButton =====&lt;br /&gt;
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[-] Date conversion with suffixes improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCurrencySettings =====&lt;br /&gt;
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDPopupMenu =====&lt;br /&gt;
[+] OnAfterPopup event&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioGroup =====&lt;br /&gt;
[-] Shift-Tab handling was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextEditDlg =====&lt;br /&gt;
[+] OnCustomize event; the Sender parameter contains reference to the shown form. You can typecast it e.g. via with TLMDFrmTextEditor(Sender) do...; and modify any kind of visual appeance of the dialog. Make sure that LMDTextEditor unit was added to uses clause. Check also this unit to review which controls are located on this form.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] AlwaysReturnText property. Enable this property if no ModalResult button is available on dialog (e.g. via teBottomPanel option). Always Text of memo in dialog control is set to Text property.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New flags for Options property: [1] teStatusBar (displays statusbar) [2] teBottomPanel (displays bottom panel with Ok, Cancel and optional Custom button). Note: teStatusBar and teBottomPanel should not be enabled at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPack controls =====&lt;br /&gt;
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDTextRadioGroup display problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60a (24-Sep-2004) ====&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[-] Retrieving Value property fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== LMDUtils.pas =====&lt;br /&gt;
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60 (17-Sep-2004) ====&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] Drawing of small items when SmallGlyph is assigned fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional minor changes in control and component editor&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[+] AllowAllUp property for Buttons items added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[*] Improved TabStop behaviour&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomContainer (and derived controls) =====&lt;br /&gt;
[*] Assign method was changed, so that component editors of main controls work now in derived controls &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Problem with previously open tables fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
Control is now able to display text even if no sections are defined at all.&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[+] CtlXP property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Escape key now already closes dialog and returns mrCancel result&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Default positioning was changed in various ways&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Yes to All/No to All buttons are now supported&amp;lt;br&amp;gt;&lt;br /&gt;
[-] If no buttons for display are specified -&amp;gt; ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioButton =====&lt;br /&gt;
[-]  Minor bug fixed when Checked is disabled via code while control is focused&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSendKeys =====&lt;br /&gt;
[+] {SPACE} key identifier supported&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[+] CtlXP property (for drawing of sizegrip) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSysMenu =====&lt;br /&gt;
[-] Problem with ForceUpdate method in Menu mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTreeComboBox =====&lt;br /&gt;
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.59 (30-June-2004) ====&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButtons =====&lt;br /&gt;
[*] Several changes in connection with DropDownMenus&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckListComboBox =====&lt;br /&gt;
[*] AutoHeight feature for different font heights now enabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboExt (and all descendants) =====&lt;br /&gt;
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] On creating a date string it happened that an access to an empty string with fmt_str[1] was made. Now datetostr will work if the date has a &amp;quot;suffix&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[-] Frame around Checklistbox now longer hidden when items are deleted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[+] AutoResizePanes property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPrinter =====&lt;br /&gt;
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.58 (19-May-2004) ====&lt;br /&gt;
[ParsePack]&lt;br /&gt;
Several HTML output issues fixed&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants =====&lt;br /&gt;
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.57 (11-May-2004) ====&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[-] AddButton/InsertButton AV fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel  =====&lt;br /&gt;
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomBevelPanel and descendants =====&lt;br /&gt;
[+] NoHandleUpdate property. Enable this property if handle of panel should be kept when Bevel settings are changed. This property might beuseful e.g. when an edit control is placed within a panel and panel width should be changed when enduser enters/exits edit field.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEdit =====&lt;br /&gt;
[-]  Insert after AutoSelect and right key now at the correct, position, left key (first char of text is selected, pos on that one) will remove the selection now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEditAutoComplete =====&lt;br /&gt;
[-] Problem with empty strings in Popup mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[-] SaveResources mode was always on, this was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 SourcePack (16-Feb-2004) ====&lt;br /&gt;
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Edit/Memos]&lt;br /&gt;
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Performance drop when using WinXP Themes solved&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Cursor problem when Memo was ActiveControl on a form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 (19-Jan-2004) ====&lt;br /&gt;
[*] DBSpeedButtons provides now ButtonStyle property &amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnContextPopup is generated in BaseEdit and descendants&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CaptionButtons problem with Arrow buttons fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV when setting Active property in TrayIcon component fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomPanelFill update at designtime fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD BarPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03.00 (07-Mar-2007) ====&lt;br /&gt;
[*] Several performance improvements, Delphi 2007 compatibility.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02.00 (25-Feb-2006) ====&lt;br /&gt;
===== TLMDBarHTMLLabel =====&lt;br /&gt;
[+] LineGap property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDExplorerBarSections =====&lt;br /&gt;
[+] Margin property added (specifies border in sections)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] InfoLineGap property added. Allow specification of line gaps in Information label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.60 (30-May-2005) ====&lt;br /&gt;
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.54 (08-Dec-2004) ====&lt;br /&gt;
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.53 (10-Sep-2004) ====&lt;br /&gt;
[-] AVs fixed during running animations&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Glyphs assigned to control's Glyph properties are now used correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.52 (30-June-2004) ====&lt;br /&gt;
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.51 (21-May-2004) ====&lt;br /&gt;
[-] Repaint problem in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.50 (21-Apr-2004) ====&lt;br /&gt;
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small resource Leak in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.01 (28-July-2003) ====&lt;br /&gt;
[-] LMDBarCtlXPSupported function can be used to check whether Themes is available and enabled for current application (defined in LMDBarBase). This method was accidentally used in ExplorerBar demo in first release but now made public.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
===== Initial Release. =====&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDDesignPanel: &amp;quot;Autoscroll&amp;quot; property not persistent fixed (BDS2006)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.00 (31-Oct-2005) ====&lt;br /&gt;
[-] Workaround for custom memory manager (Fast MM) problem added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.01 (21-Apr-2005) ====&lt;br /&gt;
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.00 (10-Sep-2004) ====&lt;br /&gt;
[+] ReadOnly property for diagram controls&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.20.00 (23-Jun-2004) ====&lt;br /&gt;
Feature Update! Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.10.00 (06-Jan-2004) ====&lt;br /&gt;
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.20 (09-Aug-2003) ====&lt;br /&gt;
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD FxPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
Initial Release (08-Dec-2004)&lt;br /&gt;
No updates available yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.60 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.50 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDRichEdit: Changes in FindText and ReplaceText method. New default for options parameter is [searchDown]. Thus FoundAt:= Editor.FindText( 'LMD', 0, Length(Editor.Lines.Text)); will search for the first occurence of 'LMD'. If searchDown flag is not set, search is processed from StartPos towards beginning of the document (RichEdit DLL version 2 or better required). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 7.03.02 release of LMD-Tools an additional Demo (Delphi\RichEdit_Execute) was added for demonstrating a way to encapsulate RTF dialog in a method (such Execute methods will be part of the next major RichPack release).&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.10 (25-Feb-2006) ====&lt;br /&gt;
[+] Numbering actions: FirstIndent/LeftIndent properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.00 (15-Nov-2005) ====&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] BTS #317 fixed (scrollbar problem with different dpi settings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (25-August-2005) ====&lt;br /&gt;
[TLMDRichLabel and descendants]&lt;br /&gt;
[*] Cursor property functionality enabled in RichLabel controls as used in VCL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEdit and descendants]&lt;br /&gt;
[+] ShowDefaultPopup property: If enabled, no default menu is shown.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnBeforeSave, OnAfterSave events. Use the later one if you want to switch off automatic optimizing of RichText display after save operations (which could lead to movement of scrollbar etc., though). Simply set skipDefaultBehaviour value to true in this case.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEditActions]&lt;br /&gt;
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.61 (12-May-2005) ====&lt;br /&gt;
Fix in label controls where after special characters links were no longer recognized.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.60 (15-Mar-2005) ====&lt;br /&gt;
[-] Various fixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.51 (24-Sep-2004) ====&lt;br /&gt;
[-] AV with TLMDRichEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.50 (14-Sep-2004) ====&lt;br /&gt;
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several other minor bugfixes and changes for VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.11 (30-Jun-2004) ====&lt;br /&gt;
[-] Several minor bugfixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (30-Mar-2004) ====&lt;br /&gt;
[*] TLMDRichLabel link handling changed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (29-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[*] RTFText property reintroduced&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel and descendants]&lt;br /&gt;
[-] Several problems with bevel painting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Storage Controls, Collection Editor]&lt;br /&gt;
[+] You can open editor for an item via double click instead via object inspector now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (08-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] several position and TLMDRuler issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] Resizing problems fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[HyperText]&lt;br /&gt;
[+] Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.00 (09-Dec-2003) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] Ability to past raw text improved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed several bugs with non-English charset.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] procedure InsertGraphic(aGraphic: TGraphic);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] improved display in transparent &amp;amp; smoothing mode&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed bug with change of DeltaX and DeltaY values&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] Division by Zero error fixed which happened eventually when loading different text snippets&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar initialization when loading different files corrected&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichSyntaxEdit]&lt;br /&gt;
[*] processing non-standard keywords, work scheme and work speed improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Hint]&lt;br /&gt;
[*] You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (23-Nov-2003) ====&lt;br /&gt;
[-] bug fixed: put link text to Clipboard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] bug fixed: clear selection with links&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDRichScrollBox: flickering when using scrollbars reduced&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed several bugs with Indents.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.01 (19-Jan-2007) ====&lt;br /&gt;
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (12-Nov-2006) ====&lt;br /&gt;
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:&amp;lt;br&amp;gt;&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); --&amp;gt;  sort after column of type aColumn, e.g. sh.SortColumn(cdName);&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
  procedure SortColumn(aIndex:Integer); --&amp;gt; sort after column with index aIndex, e.g. sh.SortColumn(1);&lt;br /&gt;
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
[-] TLMDShellList: Problem with frames fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.50 (25-Feb-2006) ====&lt;br /&gt;
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (17-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes, VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SearchPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.04.10 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDSearchFileGrep: AV on locked files fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.50 (14-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.10 (04-Jul-2004) ====&lt;br /&gt;
[TLMDSearchFileGrep] (suggested by ConDev)&lt;br /&gt;
[+] property TemplateValid : Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] property OnTemplateInvalid : TNotifyEvent&amp;lt;br&amp;gt;&lt;br /&gt;
If upon assignment of &amp;quot;SearchString&amp;quot; the template parsing fails, the &amp;quot;TemplateValid&amp;quot; property is set accordingly.&lt;br /&gt;
In addition the &amp;quot;OnTemplateInvalid&amp;quot; event is used to suppress former message (or let the user decide what error message pops up)&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03 (20-Oct-2003) ====&lt;br /&gt;
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but&amp;lt;br&amp;gt;&lt;br /&gt;
contents of file could not be checked.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.02 (30-Aug-2003) ====&lt;br /&gt;
[-] Fixed: Skip character after found wildcard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: Result list fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01 (19-May-2003) ====&lt;br /&gt;
[-] Problem with search expression starting at first position fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] MatchCase bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.50 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDSysPrinter info display corrected &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] pfWinVista added for TLMDSysPlatform type&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.00 (17-Jan-2006) ====&lt;br /&gt;
[-] BTS# 284 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.52 (24-Sep-2004) ====&lt;br /&gt;
[-] Fix for AV in SysMemoryObject&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem in TLMDSysTimeZone fixed (BTS #146)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.51 (14-Sep-2004) ====&lt;br /&gt;
[*] Changes in memory detection routines&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.50 (20-Apr-2004) ====&lt;br /&gt;
[TLMDSysInfoListView ]&lt;br /&gt;
[+] ShowDescriptionColumn property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Columns property made public&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDSysNetworkEnumerator]&lt;br /&gt;
[+] OnEnumItem event&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CancelThread method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.20 (19-Jan-2007) ====&lt;br /&gt;
[-] Small memory leaks in TLMDStorXML.Parse fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.30 (25-July-2005) ====&lt;br /&gt;
[TLMDStorXMLVault]&lt;br /&gt;
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to &amp;lt;LMDStorageData&amp;gt; and &amp;lt;/LMDStorageData&amp;gt;). Use with care for existing applications!&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Release 1.08.10 (27-May-2005) ====&lt;br /&gt;
[TLMDStorINIVault]&lt;br /&gt;
[-] Bug with corrupting INI file after list properties fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.00 (17-Sep-2004) ====&lt;br /&gt;
[TLMDStorPropertiesStorage]&lt;br /&gt;
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.&amp;lt;br&amp;gt;&lt;br /&gt;
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.&lt;br /&gt;
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDOSReader.OnNotFound event added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.07.00 (10-July-2004) ====&lt;br /&gt;
[+] OnCustomRootRead &amp;amp; OnCustomRootWrite events for Vault controls. Allow specification of custom root control.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDStorPropertiesStorage: Frames are supported now.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several bugfixes in Vault controls.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDStorage-Base64 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.50 (30-Mar-2004) ====&lt;br /&gt;
[-] &amp;quot;Data not found&amp;quot; bug when no active section was set fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.40 (29-Jan-2004) ====&lt;br /&gt;
[-] XML-Parser: Problem with &amp;lt;CR&amp;gt; in properties fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Chars [#0..#31,'%','&amp;quot;'] stores now in vault controls as %00..%1F,%25...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.30 (31-Dec-2003) ====&lt;br /&gt;
[-] Problem with doubled attributes in XML files solved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.20 (04-Nov-2003) ====&lt;br /&gt;
[-] Fixes in Visual designer, e.g.compatbility with TChart control&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06 (20-Oct-2003) ====&lt;br /&gt;
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Stack overflow in certain conditions in visual design editor fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.05 (05-Sep-2003) ====&lt;br /&gt;
[LMDStorBase.pas TLMDAbstractStorageVault]&lt;br /&gt;
[*] Fixed procedure SetFileName - now file name isn't stripped during loading&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Add new property &amp;quot;AutoUpdate&amp;quot; in base storage class  TLMDAbstractStorageVault. It is used by INI and XML vaults to toggle save mode between update after each property change (slow) and cached writing (fast).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorINIVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorXMLVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.04 (25-July-2003) ====&lt;br /&gt;
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03 (02-July-2003) ====&lt;br /&gt;
[-] Minor Problems with dynamic objects were fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02 (01-July-2003) ====&lt;br /&gt;
[-] Problems with XML format were fixed (quoted strings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.01 (19-May-2003) ====&lt;br /&gt;
[-] Bug in visual design editor which caused an infinity loop was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.01 (21-Apr-2005) ====&lt;br /&gt;
[*] Minor changes in TLMDDownload class&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (15-Sep-2004) ====&lt;br /&gt;
[*] Many changes for VCL.NET compatbility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.20 (30-Mar-2004) ====&lt;br /&gt;
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.10 (28-Jan-2004) ====&lt;br /&gt;
[-] URL decode function fixed (e.g. for Scan control)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor problem with Charset in Download Form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Unnecessary calls in RAS support removed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (20-Oct-2003) ====&lt;br /&gt;
[-] Several minor bugs fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (15-Sep-2003) ====&lt;br /&gt;
[-] News demos for Delphi updated. In source version english resource file is by default installed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDWebHTTPScan: Memory leak fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDWebHTTPScan.Clear method added.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3811</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3811"/>
				<updated>2017-08-18T10:02:12Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
=== LMD-Tools Core 7.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.10 (06-June-2007) ====&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Transparent (first) display of TLMDCalendarComboBox fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.00 (20-May-2007) ====&lt;br /&gt;
[+] OnMouseActivate and OnContextPopUp property events added to several controls&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional D2k7 and Vista adaptions&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60A (20-Mar-2007) ====&lt;br /&gt;
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60 (07-Mar-2007) ====&lt;br /&gt;
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.51 (05-Feb-2007) ====&lt;br /&gt;
[-] TLMDFormVistaExtension functionality integrated again&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.50 (19-Jan-2007) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Numberbase related minor fixes;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtSpinEdit and descendants =====&lt;br /&gt;
[+] CurrencySettings made published;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnChange issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.01 (21-Dec-2006) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12 (14-Dec-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[+] New control: TLMDTaskDialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New control: TLMDFormVistaExtension&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Display problem in DB descendants fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDockLabel =====&lt;br /&gt;
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)&lt;br /&gt;
[+] Number bases other than 10 now supported for all meFloat* masks.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deleting whole text in meInteger is now correctly handled.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check for rounding moved from ChangedText to asFloat.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ReadDate, WriteDate cleaned up &amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display after changing MaskType. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display when control was just loaded. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several .net compatibility fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileOpenEdit, TLMDFileSaveEdit =====&lt;br /&gt;
[+] StartWithLastName, StartWithLastPath properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHideNonVC =====&lt;br /&gt;
[-] Access Violation problem in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Artefact problem with hints fixed &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.11 (16-Nov-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[*] Several changes to ensure Windows Vista compatibility. Another planned update (7.12) will be released in December which will contain additional improvements (mainly concerning UAC handling for system controls). Another known problem in Vista RC release: Tracing property of Font3D/Fx objects may not work properly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 453 (several memory leaks) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Process termination issue fixed (BDS2006 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox) =====&lt;br /&gt;
[*] BTS #462 --&amp;gt; Clear method updated&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-]Minor fix for overwrite mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #458 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional position checkings - ensures that form is always completely visible on desktop.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit  =====&lt;br /&gt;
[-] Issues in Currency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar =====&lt;br /&gt;
[-] Missing Mouse events added&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.10 (25-Sep-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent:  =====&lt;br /&gt;
  - CPU 100% usage issue fixed (BTS #444)&lt;br /&gt;
  - Lost alarm list items when deactivating issue fixed&lt;br /&gt;
  - Thread is no longer active when control is disabled&lt;br /&gt;
  + LMDAlarmItem.PassTimes property added&lt;br /&gt;
  + ResetItems method added&lt;br /&gt;
&lt;br /&gt;
===== TLMDAssist  =====&lt;br /&gt;
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonControl (CheckBox, RadioGroup and all similar controls) =====&lt;br /&gt;
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboBox and descendants =====&lt;br /&gt;
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[*] Switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.00 (18-Aug-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButton  =====&lt;br /&gt;
[-] Issue reported in BTS #379 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBExtSpinEdit =====&lt;br /&gt;
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[+] DropDownStyle property added (BTS #378)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDIniCtrl =====&lt;br /&gt;
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SectionsExists and ValueExists methods added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBarComboBox =====&lt;br /&gt;
[-] Problem with non-default MinValues (&amp;lt;10) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDWndButtonShape =====&lt;br /&gt;
[-] OffsetDirection property (BTS #376) &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.05.00 (10-Apr-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Missing check for Active state added;&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDClock =====&lt;br /&gt;
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomGroup and descendants =====&lt;br /&gt;
[*] Columns number &amp;gt;12 is possible now.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomListComboBox =====&lt;br /&gt;
[-] Control does no longer lose items when handle of control is recreated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBLight =====&lt;br /&gt;
[+] ValueChecked property added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBSwitch =====&lt;br /&gt;
[+] ValueChecked/ValueUnChecked properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFaceController =====&lt;br /&gt;
[-] AVs at designtime in certain situations fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit =====&lt;br /&gt;
[-] Problem with &amp;quot;-&amp;quot; characters in number masks fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] moving current pos while pressing &amp;quot;-&amp;quot; in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] inserting first char instead of overwriting in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] stopping at decimalsep while deleting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] extra zeroes while overwriting decimalsep fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fractional part deletion when single digit before decimalsep is deleted fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes in Currency mode.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMouseFencer =====&lt;br /&gt;
[*] Minor change as suggested in BTS #375-&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStaticText =====&lt;br /&gt;
[*] BTS #374 (Visible property published). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.04.00 (27-Feb-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[*] Items Date and Time made public &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBrowseDlg  =====&lt;br /&gt;
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New system folders added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomRadioGroup and descendants =====&lt;br /&gt;
[-] Fixed focus setting when ItemIndex changes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHTMLLabel =====&lt;br /&gt;
[+] LineGap property added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.10 (16-Feb-2006) ====&lt;br /&gt;
===== This release was made available for LMD-Tools SE user only. =====&lt;br /&gt;
&lt;br /&gt;
[-] BTS #363 (TLMDLEDLabel issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Broken Caption / Hint editor in VCL.NET releases fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.02 (17-Jan-2006) ====&lt;br /&gt;
===== This release is especially intented for C++ user of BDS 2006. =====&lt;br /&gt;
&lt;br /&gt;
===== LMDSysIn.pas =====&lt;br /&gt;
[-] Linkage problem in BDS2006 for C++ personality fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp =====&lt;br /&gt;
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[+] AutoFocus property added (FRT #46)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton and descendants =====&lt;br /&gt;
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.01 (21-Nov-2005) ====&lt;br /&gt;
LMD-Tools SE assembly (VCL.NET and SE version only)&lt;br /&gt;
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).&lt;br /&gt;
&lt;br /&gt;
===== TLMDFontSizeComboBox =====&lt;br /&gt;
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.00 (14-Nov-2005) ====&lt;br /&gt;
===== TLMDAssist =====&lt;br /&gt;
[+] Transparent and CtlXP support added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomButton =====&lt;br /&gt;
[*] Focus is no longer drawn when button is disabled&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskCheck property added (if enabled, pressing Enter key will force a validation of the current input. Previously mask was only tested when user exits control).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskValidation method added. Use this method to case mask validation via code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImagelist(Item) =====&lt;br /&gt;
[-] BTS# 322 fixed (problem with custom memory manager, e.g. FastMM). This workaround should also fix similar problem with CodeGuard in CBuilder 5 and 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar(Object) =====&lt;br /&gt;
[+] New property BarWidth. Allows specification of with (in vertical) or height (in horizontal mode) of scrollbar. Especially useful e.g. in TLMDCustomMemo and derived controls to change the width/height of inner scrollbars. Use values of 0 or less to let control determine system settings for scrollbars.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TextPack components&lt;br /&gt;
For several TextPack components additional properties from ancestor controls were published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.02.00 (25-Aug-2005) ====&lt;br /&gt;
General Change: XP Theme support&lt;br /&gt;
The XP Theme support was redesigned due to a bug in Windows XP Theme support. To workaround this, LMD-Tools controls do no longer use dynamic handles for drawing themed items. Problems like reported in BTS #245 should be therefore solved from this release on.&lt;br /&gt;
&lt;br /&gt;
===== TLMDAboutDlg =====&lt;br /&gt;
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure MyForm.AboutCustomize (Sender:TObject); &lt;br /&gt;
begin&lt;br /&gt;
  with TForm (Sender) do&lt;br /&gt;
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';&lt;br /&gt;
  [..]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deletion of alarm dates problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.) =====&lt;br /&gt;
[-] Visible problem with Twinkle/Transparent enabled at same time fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Twinkle effect is no longer shown at design time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit =====&lt;br /&gt;
[-] BTS# 262 (invisible first character issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo (and descendants) =====&lt;br /&gt;
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendarEdit =====&lt;br /&gt;
[-] OnDlgClose problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons =====&lt;br /&gt;
[-] BTS# 245 (xp theme issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Structural changes concerning XP themes handling&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDBEdit and -Memo (and descendants) =====&lt;br /&gt;
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 310 (DisplayText issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 306 (inserting garbage in certain cases) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBMaskedEdit =====&lt;br /&gt;
[-] TBCDField issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileCtrl =====&lt;br /&gt;
[+] Property &amp;quot;FileStampFormat&amp;quot; added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileGrep =====&lt;br /&gt;
[-] Filesizes &amp;gt;2GB are now supported. FileSize properties are now of Int64 type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay =====&lt;br /&gt;
[-] BTS# 041 (action shortcuts issue) fixed - TLMDFormDisplay.NewWndProc changed; with this change and correct use of flags (HookWindowProc = True, UseResForms = True) action shortcuts work correct&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShapeControl =====&lt;br /&gt;
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTipDlg =====&lt;br /&gt;
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Empty lines in Tips list are always skipped now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01.10 (27-May-2005) ====&lt;br /&gt;
===== All (focusable) button controls =====&lt;br /&gt;
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] OnMonthChange problem fixed (BTS #286)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckBox, TLMDRadioButton and other glyph/text controls =====&lt;br /&gt;
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShape- and MessageHint =====&lt;br /&gt;
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01  (20-Apr-2005) ====&lt;br /&gt;
VCL.NET release of core controls introduced.&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel =====&lt;br /&gt;
[+] Support of OnMouse* events added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ClientPanel property (public, read-only) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDGlyphLabel =====&lt;br /&gt;
[-] Wordwrap problem in multiline mode when image is shown fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImage- and BitmapList =====&lt;br /&gt;
[+] New PixelFormat: spf16bit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Header sections are now shown when ListBox is placed on TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
[-] 25 can now be set for HeaderHeight property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMemo =====&lt;br /&gt;
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ButtonTitles problem fixed. Button captions must be specified in same order as TMsgDlgBtn is defined: 0. mbYes, 1. mbNo, 2. mbOK, 3. mbCancel, 4. mbAbort, 5. mbRetry, 6. mbIgnore, 7. mbAll, 8. mbNoToAll, 9. mbYesToAll, 10. mbHelp (for Hints property: 11. Glyph/MessageText)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Gradient settings with ColorLists work now correctly inside TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====&lt;br /&gt;
General Change: Label controls&lt;br /&gt;
Until this release code for AutoSize property was processed even if Align&amp;lt;&amp;gt;alNone. This was changed. Refers to BTS #240&lt;br /&gt;
&lt;br /&gt;
===== TLMD3DEffectButton =====&lt;br /&gt;
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
[-] Date conversion with suffixes improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCurrencySettings =====&lt;br /&gt;
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDPopupMenu =====&lt;br /&gt;
[+] OnAfterPopup event&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioGroup =====&lt;br /&gt;
[-] Shift-Tab handling was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextEditDlg =====&lt;br /&gt;
[+] OnCustomize event; the Sender parameter contains reference to the shown form. You can typecast it e.g. via with TLMDFrmTextEditor(Sender) do...; and modify any kind of visual appeance of the dialog. Make sure that LMDTextEditor unit was added to uses clause. Check also this unit to review which controls are located on this form.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] AlwaysReturnText property. Enable this property if no ModalResult button is available on dialog (e.g. via teBottomPanel option). Always Text of memo in dialog control is set to Text property.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New flags for Options property: [1] teStatusBar (displays statusbar) [2] teBottomPanel (displays bottom panel with Ok, Cancel and optional Custom button). Note: teStatusBar and teBottomPanel should not be enabled at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPack controls =====&lt;br /&gt;
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDTextRadioGroup display problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60a (24-Sep-2004) ====&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[-] Retrieving Value property fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== LMDUtils.pas =====&lt;br /&gt;
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60 (17-Sep-2004) ====&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] Drawing of small items when SmallGlyph is assigned fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional minor changes in control and component editor&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[+] AllowAllUp property for Buttons items added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[*] Improved TabStop behaviour&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomContainer (and derived controls) =====&lt;br /&gt;
[*] Assign method was changed, so that component editors of main controls work now in derived controls &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Problem with previously open tables fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
Control is now able to display text even if no sections are defined at all.&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[+] CtlXP property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Escape key now already closes dialog and returns mrCancel result&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Default positioning was changed in various ways&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Yes to All/No to All buttons are now supported&amp;lt;br&amp;gt;&lt;br /&gt;
[-] If no buttons for display are specified -&amp;gt; ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioButton =====&lt;br /&gt;
[-]  Minor bug fixed when Checked is disabled via code while control is focused&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSendKeys =====&lt;br /&gt;
[+] {SPACE} key identifier supported&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[+] CtlXP property (for drawing of sizegrip) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSysMenu =====&lt;br /&gt;
[-] Problem with ForceUpdate method in Menu mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTreeComboBox =====&lt;br /&gt;
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.59 (30-June-2004) ====&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButtons =====&lt;br /&gt;
[*] Several changes in connection with DropDownMenus&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckListComboBox =====&lt;br /&gt;
[*] AutoHeight feature for different font heights now enabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboExt (and all descendants) =====&lt;br /&gt;
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] On creating a date string it happened that an access to an empty string with fmt_str[1] was made. Now datetostr will work if the date has a &amp;quot;suffix&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[-] Frame around Checklistbox now longer hidden when items are deleted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[+] AutoResizePanes property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPrinter =====&lt;br /&gt;
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.58 (19-May-2004) ====&lt;br /&gt;
[ParsePack]&lt;br /&gt;
Several HTML output issues fixed&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants =====&lt;br /&gt;
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.57 (11-May-2004) ====&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[-] AddButton/InsertButton AV fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel  =====&lt;br /&gt;
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomBevelPanel and descendants =====&lt;br /&gt;
[+] NoHandleUpdate property. Enable this property if handle of panel should be kept when Bevel settings are changed. This property might beuseful e.g. when an edit control is placed within a panel and panel width should be changed when enduser enters/exits edit field.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEdit =====&lt;br /&gt;
[-]  Insert after AutoSelect and right key now at the correct, position, left key (first char of text is selected, pos on that one) will remove the selection now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEditAutoComplete =====&lt;br /&gt;
[-] Problem with empty strings in Popup mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[-] SaveResources mode was always on, this was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 SourcePack (16-Feb-2004) ====&lt;br /&gt;
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Edit/Memos]&lt;br /&gt;
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Performance drop when using WinXP Themes solved&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Cursor problem when Memo was ActiveControl on a form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 (19-Jan-2004) ====&lt;br /&gt;
[*] DBSpeedButtons provides now ButtonStyle property &amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnContextPopup is generated in BaseEdit and descendants&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CaptionButtons problem with Arrow buttons fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV when setting Active property in TrayIcon component fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomPanelFill update at designtime fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD BarPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03.00 (07-Mar-2007) ====&lt;br /&gt;
[*] Several performance improvements, Delphi 2007 compatibility.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02.00 (25-Feb-2006) ====&lt;br /&gt;
===== TLMDBarHTMLLabel =====&lt;br /&gt;
[+] LineGap property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDExplorerBarSections =====&lt;br /&gt;
[+] Margin property added (specifies border in sections)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] InfoLineGap property added. Allow specification of line gaps in Information label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.60 (30-May-2005) ====&lt;br /&gt;
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.54 (08-Dec-2004) ====&lt;br /&gt;
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.53 (10-Sep-2004) ====&lt;br /&gt;
[-] AVs fixed during running animations&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Glyphs assigned to control's Glyph properties are now used correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.52 (30-June-2004) ====&lt;br /&gt;
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.51 (21-May-2004) ====&lt;br /&gt;
[-] Repaint problem in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.50 (21-Apr-2004) ====&lt;br /&gt;
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small resource Leak in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.01 (28-July-2003) ====&lt;br /&gt;
[-] LMDBarCtlXPSupported function can be used to check whether Themes is available and enabled for current application (defined in LMDBarBase). This method was accidentally used in ExplorerBar demo in first release but now made public.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
===== Initial Release. =====&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDDesignPanel: &amp;quot;Autoscroll&amp;quot; property not persistent fixed (BDS2006)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.00 (31-Oct-2005) ====&lt;br /&gt;
[-] Workaround for custom memory manager (Fast MM) problem added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.01 (21-Apr-2005) ====&lt;br /&gt;
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.00 (10-Sep-2004) ====&lt;br /&gt;
[+] ReadOnly property for diagram controls&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.20.00 (23-Jun-2004) ====&lt;br /&gt;
Feature Update! Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.10.00 (06-Jan-2004) ====&lt;br /&gt;
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.20 (09-Aug-2003) ====&lt;br /&gt;
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD FxPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
Initial Release (08-Dec-2004)&lt;br /&gt;
No updates available yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.60 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.50 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDRichEdit: Changes in FindText and ReplaceText method. New default for options parameter is [searchDown]. Thus FoundAt:= Editor.FindText( 'LMD', 0, Length(Editor.Lines.Text)); will search for the first occurence of 'LMD'. If searchDown flag is not set, search is processed from StartPos towards beginning of the document (RichEdit DLL version 2 or better required). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 7.03.02 release of LMD-Tools an additional Demo (Delphi\RichEdit_Execute) was added for demonstrating a way to encapsulate RTF dialog in a method (such Execute methods will be part of the next major RichPack release).&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.10 (25-Feb-2006) ====&lt;br /&gt;
[+] Numbering actions: FirstIndent/LeftIndent properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.00 (15-Nov-2005) ====&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] BTS #317 fixed (scrollbar problem with different dpi settings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (25-August-2005) ====&lt;br /&gt;
[TLMDRichLabel and descendants]&lt;br /&gt;
[*] Cursor property functionality enabled in RichLabel controls as used in VCL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEdit and descendants]&lt;br /&gt;
[+] ShowDefaultPopup property: If enabled, no default menu is shown.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnBeforeSave, OnAfterSave events. Use the later one if you want to switch off automatic optimizing of RichText display after save operations (which could lead to movement of scrollbar etc., though). Simply set skipDefaultBehaviour value to true in this case.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEditActions]&lt;br /&gt;
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.61 (12-May-2005) ====&lt;br /&gt;
Fix in label controls where after special characters links were no longer recognized.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.60 (15-Mar-2005) ====&lt;br /&gt;
[-] Various fixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.51 (24-Sep-2004) ====&lt;br /&gt;
[-] AV with TLMDRichEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.50 (14-Sep-2004) ====&lt;br /&gt;
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several other minor bugfixes and changes for VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.11 (30-Jun-2004) ====&lt;br /&gt;
[-] Several minor bugfixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (30-Mar-2004) ====&lt;br /&gt;
[*] TLMDRichLabel link handling changed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (29-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[*] RTFText property reintroduced&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel and descendants]&lt;br /&gt;
[-] Several problems with bevel painting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Storage Controls, Collection Editor]&lt;br /&gt;
[+] You can open editor for an item via double click instead via object inspector now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (08-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] several position and TLMDRuler issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] Resizing problems fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[HyperText]&lt;br /&gt;
[+] Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.00 (09-Dec-2003) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] Ability to past raw text improved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed several bugs with non-English charset.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] procedure InsertGraphic(aGraphic: TGraphic);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] improved display in transparent &amp;amp; smoothing mode&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed bug with change of DeltaX and DeltaY values&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] Division by Zero error fixed which happened eventually when loading different text snippets&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar initialization when loading different files corrected&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichSyntaxEdit]&lt;br /&gt;
[*] processing non-standard keywords, work scheme and work speed improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Hint]&lt;br /&gt;
[*] You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (23-Nov-2003) ====&lt;br /&gt;
[-] bug fixed: put link text to Clipboard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] bug fixed: clear selection with links&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDRichScrollBox: flickering when using scrollbars reduced&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed several bugs with Indents.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.01 (19-Jan-2007) ====&lt;br /&gt;
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (12-Nov-2006) ====&lt;br /&gt;
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:&amp;lt;br&amp;gt;&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); --&amp;gt;  sort after column of type aColumn, e.g. sh.SortColumn(cdName);&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
  procedure SortColumn(aIndex:Integer); --&amp;gt; sort after column with index aIndex, e.g. sh.SortColumn(1);&lt;br /&gt;
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
[-] TLMDShellList: Problem with frames fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.50 (25-Feb-2006) ====&lt;br /&gt;
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (17-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes, VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SearchPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.04.10 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDSearchFileGrep: AV on locked files fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.50 (14-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.10 (04-Jul-2004) ====&lt;br /&gt;
[TLMDSearchFileGrep] (suggested by ConDev)&lt;br /&gt;
[+] property TemplateValid : Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] property OnTemplateInvalid : TNotifyEvent&amp;lt;br&amp;gt;&lt;br /&gt;
If upon assignment of &amp;quot;SearchString&amp;quot; the template parsing fails, the &amp;quot;TemplateValid&amp;quot; property is set accordingly.&lt;br /&gt;
In addition the &amp;quot;OnTemplateInvalid&amp;quot; event is used to suppress former message (or let the user decide what error message pops up)&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03 (20-Oct-2003) ====&lt;br /&gt;
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but&amp;lt;br&amp;gt;&lt;br /&gt;
contents of file could not be checked.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.02 (30-Aug-2003) ====&lt;br /&gt;
[-] Fixed: Skip character after found wildcard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: Result list fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01 (19-May-2003) ====&lt;br /&gt;
[-] Problem with search expression starting at first position fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] MatchCase bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.50 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDSysPrinter info display corrected &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] pfWinVista added for TLMDSysPlatform type&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.00 (17-Jan-2006) ====&lt;br /&gt;
[-] BTS# 284 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.52 (24-Sep-2004) ====&lt;br /&gt;
[-] Fix for AV in SysMemoryObject&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem in TLMDSysTimeZone fixed (BTS #146)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.51 (14-Sep-2004) ====&lt;br /&gt;
[*] Changes in memory detection routines&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.50 (20-Apr-2004) ====&lt;br /&gt;
[TLMDSysInfoListView ]&lt;br /&gt;
[+] ShowDescriptionColumn property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Columns property made public&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDSysNetworkEnumerator]&lt;br /&gt;
[+] OnEnumItem event&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CancelThread method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.20 (19-Jan-2007) ====&lt;br /&gt;
[-] Small memory leaks in TLMDStorXML.Parse fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.30 (25-July-2005) ====&lt;br /&gt;
[TLMDStorXMLVault]&lt;br /&gt;
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to &amp;lt;LMDStorageData&amp;gt; and &amp;lt;/LMDStorageData&amp;gt;). Use with care for existing applications!&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Release 1.08.10 (27-May-2005) ====&lt;br /&gt;
[TLMDStorINIVault]&lt;br /&gt;
[-] Bug with corrupting INI file after list properties fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.00 (17-Sep-2004) ====&lt;br /&gt;
[TLMDStorPropertiesStorage]&lt;br /&gt;
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.&amp;lt;br&amp;gt;&lt;br /&gt;
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.&lt;br /&gt;
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDOSReader.OnNotFound event added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.07.00 (10-July-2004) ====&lt;br /&gt;
[+] OnCustomRootRead &amp;amp; OnCustomRootWrite events for Vault controls. Allow specification of custom root control.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDStorPropertiesStorage: Frames are supported now.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several bugfixes in Vault controls.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDStorage-Base64 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.50 (30-Mar-2004) ====&lt;br /&gt;
[-] &amp;quot;Data not found&amp;quot; bug when no active section was set fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.40 (29-Jan-2004) ====&lt;br /&gt;
[-] XML-Parser: Problem with &amp;lt;CR&amp;gt; in properties fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Chars [#0..#31,'%','&amp;quot;'] stores now in vault controls as %00..%1F,%25...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.30 (31-Dec-2003) ====&lt;br /&gt;
[-] Problem with doubled attributes in XML files solved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.20 (04-Nov-2003) ====&lt;br /&gt;
[-] Fixes in Visual designer, e.g.compatbility with TChart control&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06 (20-Oct-2003) ====&lt;br /&gt;
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Stack overflow in certain conditions in visual design editor fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.05 (05-Sep-2003) ====&lt;br /&gt;
[LMDStorBase.pas TLMDAbstractStorageVault]&lt;br /&gt;
[*] Fixed procedure SetFileName - now file name isn't stripped during loading&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Add new property &amp;quot;AutoUpdate&amp;quot; in base storage class  TLMDAbstractStorageVault. It is used by INI and XML vaults to toggle save mode between update after each property change (slow) and cached writing (fast).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorINIVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorXMLVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.04 (25-July-2003) ====&lt;br /&gt;
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03 (02-July-2003) ====&lt;br /&gt;
[-] Minor Problems with dynamic objects were fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02 (01-July-2003) ====&lt;br /&gt;
[-] Problems with XML format were fixed (quoted strings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.01 (19-May-2003) ====&lt;br /&gt;
[-] Bug in visual design editor which caused an infinity loop was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.01 (21-Apr-2005) ====&lt;br /&gt;
[*] Minor changes in TLMDDownload class&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (15-Sep-2004) ====&lt;br /&gt;
[*] Many changes for VCL.NET compatbility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.20 (30-Mar-2004) ====&lt;br /&gt;
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.10 (28-Jan-2004) ====&lt;br /&gt;
[-] URL decode function fixed (e.g. for Scan control)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor problem with Charset in Download Form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Unnecessary calls in RAS support removed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (20-Oct-2003) ====&lt;br /&gt;
[-] Several minor bugs fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (15-Sep-2003) ====&lt;br /&gt;
[-] News demos for Delphi updated. In source version english resource file is by default installed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDWebHTTPScan: Memory leak fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDWebHTTPScan.Clear method added.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3810</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3810"/>
				<updated>2017-08-18T10:01:35Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
=== LMD-Tools Core 7.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.10 (06-June-2007) ====&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Transparent (first) display of TLMDCalendarComboBox fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.00 (20-May-2007) ====&lt;br /&gt;
[+] OnMouseActivate and OnContextPopUp property events added to several controls&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional D2k7 and Vista adaptions&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60A (20-Mar-2007) ====&lt;br /&gt;
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60 (07-Mar-2007) ====&lt;br /&gt;
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.51 (05-Feb-2007) ====&lt;br /&gt;
[-] TLMDFormVistaExtension functionality integrated again&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.50 (19-Jan-2007) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Numberbase related minor fixes;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtSpinEdit and descendants =====&lt;br /&gt;
[+] CurrencySettings made published;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnChange issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.01 (21-Dec-2006) ====&lt;br /&gt;
===== Designtime Editors =====&lt;br /&gt;
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12 (14-Dec-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[+] New control: TLMDTaskDialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New control: TLMDFormVistaExtension&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Display problem in DB descendants fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDockLabel =====&lt;br /&gt;
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit and descendants =====&lt;br /&gt;
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)&lt;br /&gt;
[+] Number bases other than 10 now supported for all meFloat* masks.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deleting whole text in meInteger is now correctly handled.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check for rounding moved from ChangedText to asFloat.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ReadDate, WriteDate cleaned up &amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display after changing MaskType. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display when control was just loaded. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several .net compatibility fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileOpenEdit, TLMDFileSaveEdit =====&lt;br /&gt;
[+] StartWithLastName, StartWithLastPath properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHideNonVC =====&lt;br /&gt;
[-] Access Violation problem in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Artefact problem with hints fixed &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.11 (16-Nov-2006) ====&lt;br /&gt;
===== General  =====&lt;br /&gt;
[*] Several changes to ensure Windows Vista compatibility. Another planned update (7.12) will be released in December which will contain additional improvements (mainly concerning UAC handling for system controls). Another known problem in Vista RC release: Tracing property of Font3D/Fx objects may not work properly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 453 (several memory leaks) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Process termination issue fixed (BDS2006 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox) =====&lt;br /&gt;
[*] BTS #462 --&amp;gt; Clear method updated&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-]Minor fix for overwrite mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #458 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional position checkings - ensures that form is always completely visible on desktop.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit  =====&lt;br /&gt;
[-] Issues in Currency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar =====&lt;br /&gt;
[-] Missing Mouse events added&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.10 (25-Sep-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent:  =====&lt;br /&gt;
  - CPU 100% usage issue fixed (BTS #444)&lt;br /&gt;
  - Lost alarm list items when deactivating issue fixed&lt;br /&gt;
  - Thread is no longer active when control is disabled&lt;br /&gt;
  + LMDAlarmItem.PassTimes property added&lt;br /&gt;
  + ResetItems method added&lt;br /&gt;
&lt;br /&gt;
===== TLMDAssist  =====&lt;br /&gt;
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonControl (CheckBox, RadioGroup and all similar controls) =====&lt;br /&gt;
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboBox and descendants =====&lt;br /&gt;
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[*] Switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.00 (18-Aug-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButton  =====&lt;br /&gt;
[-] Issue reported in BTS #379 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBExtSpinEdit =====&lt;br /&gt;
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[+] DropDownStyle property added (BTS #378)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDIniCtrl =====&lt;br /&gt;
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SectionsExists and ValueExists methods added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBarComboBox =====&lt;br /&gt;
[-] Problem with non-default MinValues (&amp;lt;10) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDWndButtonShape =====&lt;br /&gt;
[-] OffsetDirection property (BTS #376) &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.05.00 (10-Apr-2006) ====&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] Missing check for Active state added;&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDClock =====&lt;br /&gt;
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomGroup and descendants =====&lt;br /&gt;
[*] Columns number &amp;gt;12 is possible now.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomListComboBox =====&lt;br /&gt;
[-] Control does no longer lose items when handle of control is recreated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBLight =====&lt;br /&gt;
[+] ValueChecked property added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBSwitch =====&lt;br /&gt;
[+] ValueChecked/ValueUnChecked properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFaceController =====&lt;br /&gt;
[-] AVs at designtime in certain situations fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMaskEdit =====&lt;br /&gt;
[-] Problem with &amp;quot;-&amp;quot; characters in number masks fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] moving current pos while pressing &amp;quot;-&amp;quot; in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] inserting first char instead of overwriting in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] stopping at decimalsep while deleting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] extra zeroes while overwriting decimalsep fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fractional part deletion when single digit before decimalsep is deleted fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes in Currency mode.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMouseFencer =====&lt;br /&gt;
[*] Minor change as suggested in BTS #375-&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStaticText =====&lt;br /&gt;
[*] BTS #374 (Visible property published). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.04.00 (27-Feb-2006) ====&lt;br /&gt;
===== General =====&lt;br /&gt;
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[*] Items Date and Time made public &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBrowseDlg  =====&lt;br /&gt;
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New system folders added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomRadioGroup and descendants =====&lt;br /&gt;
[-] Fixed focus setting when ItemIndex changes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDForm =====&lt;br /&gt;
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHTMLLabel =====&lt;br /&gt;
[+] LineGap property added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.10 (16-Feb-2006) ====&lt;br /&gt;
===== This release was made available for LMD-Tools SE user only. =====&lt;br /&gt;
&lt;br /&gt;
[-] BTS #363 (TLMDLEDLabel issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Broken Caption / Hint editor in VCL.NET releases fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.02 (17-Jan-2006) ====&lt;br /&gt;
===== This release is especially intented for C++ user of BDS 2006. =====&lt;br /&gt;
&lt;br /&gt;
===== LMDSysIn.pas =====&lt;br /&gt;
[-] Linkage problem in BDS2006 for C++ personality fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp =====&lt;br /&gt;
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[+] AutoFocus property added (FRT #46)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton and descendants =====&lt;br /&gt;
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.01 (21-Nov-2005) ====&lt;br /&gt;
LMD-Tools SE assembly (VCL.NET and SE version only)&lt;br /&gt;
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).&lt;br /&gt;
&lt;br /&gt;
===== TLMDFontSizeComboBox =====&lt;br /&gt;
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.00 (14-Nov-2005) ====&lt;br /&gt;
===== TLMDAssist =====&lt;br /&gt;
[+] Transparent and CtlXP support added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomButton =====&lt;br /&gt;
[*] Focus is no longer drawn when button is disabled&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskCheck property added (if enabled, pressing Enter key will force a validation of the current input. Previously mask was only tested when user exits control).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskValidation method added. Use this method to case mask validation via code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImagelist(Item) =====&lt;br /&gt;
[-] BTS# 322 fixed (problem with custom memory manager, e.g. FastMM). This workaround should also fix similar problem with CodeGuard in CBuilder 5 and 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDScrollBar(Object) =====&lt;br /&gt;
[+] New property BarWidth. Allows specification of with (in vertical) or height (in horizontal mode) of scrollbar. Especially useful e.g. in TLMDCustomMemo and derived controls to change the width/height of inner scrollbars. Use values of 0 or less to let control determine system settings for scrollbars.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TextPack components&lt;br /&gt;
For several TextPack components additional properties from ancestor controls were published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.02.00 (25-Aug-2005) ====&lt;br /&gt;
General Change: XP Theme support&lt;br /&gt;
The XP Theme support was redesigned due to a bug in Windows XP Theme support. To workaround this, LMD-Tools controls do no longer use dynamic handles for drawing themed items. Problems like reported in BTS #245 should be therefore solved from this release on.&lt;br /&gt;
&lt;br /&gt;
===== TLMDAboutDlg =====&lt;br /&gt;
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
procedure MyForm.AboutCustomize (Sender:TObject); &lt;br /&gt;
begin&lt;br /&gt;
  with TForm (Sender) do&lt;br /&gt;
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';&lt;br /&gt;
  [..]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDAlarmComponent =====&lt;br /&gt;
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deletion of alarm dates problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.) =====&lt;br /&gt;
[-] Visible problem with Twinkle/Transparent enabled at same time fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Twinkle effect is no longer shown at design time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseEdit =====&lt;br /&gt;
[-] BTS# 262 (invisible first character issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDBaseGraphicButton =====&lt;br /&gt;
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo (and descendants) =====&lt;br /&gt;
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendarEdit =====&lt;br /&gt;
[-] OnDlgClose problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons =====&lt;br /&gt;
[-] BTS# 245 (xp theme issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Structural changes concerning XP themes handling&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomDBEdit and -Memo (and descendants) =====&lt;br /&gt;
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 310 (DisplayText issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit (and descendants) =====&lt;br /&gt;
[-] BTS# 306 (inserting garbage in certain cases) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBMaskedEdit =====&lt;br /&gt;
[-] TBCDField issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileCtrl =====&lt;br /&gt;
[+] Property &amp;quot;FileStampFormat&amp;quot; added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFileGrep =====&lt;br /&gt;
[-] Filesizes &amp;gt;2GB are now supported. FileSize properties are now of Int64 type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDFormDisplay =====&lt;br /&gt;
[-] BTS# 041 (action shortcuts issue) fixed - TLMDFormDisplay.NewWndProc changed; with this change and correct use of flags (HookWindowProc = True, UseResForms = True) action shortcuts work correct&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShapeControl =====&lt;br /&gt;
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTipDlg =====&lt;br /&gt;
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Empty lines in Tips list are always skipped now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01.10 (27-May-2005) ====&lt;br /&gt;
===== All (focusable) button controls =====&lt;br /&gt;
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-] OnMonthChange problem fixed (BTS #286)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMemo =====&lt;br /&gt;
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckBox, TLMDRadioButton and other glyph/text controls =====&lt;br /&gt;
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDShape- and MessageHint =====&lt;br /&gt;
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01  (20-Apr-2005) ====&lt;br /&gt;
VCL.NET release of core controls introduced.&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel =====&lt;br /&gt;
[+] Support of OnMouse* events added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ClientPanel property (public, read-only) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDGlyphLabel =====&lt;br /&gt;
[-] Wordwrap problem in multiline mode when image is shown fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDImage- and BitmapList =====&lt;br /&gt;
[+] New PixelFormat: spf16bit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Header sections are now shown when ListBox is placed on TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
[-] 25 can now be set for HeaderHeight property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMemo =====&lt;br /&gt;
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ButtonTitles problem fixed. Button captions must be specified in same order as TMsgDlgBtn is defined: 0. mbYes, 1. mbNo, 2. mbOK, 3. mbCancel, 4. mbAbort, 5. mbRetry, 6. mbIgnore, 7. mbAll, 8. mbNoToAll, 9. mbYesToAll, 10. mbHelp (for Hints property: 11. Glyph/MessageText)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTrackBar =====&lt;br /&gt;
[-] Gradient settings with ColorLists work now correctly inside TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====&lt;br /&gt;
General Change: Label controls&lt;br /&gt;
Until this release code for AutoSize property was processed even if Align&amp;lt;&amp;gt;alNone. This was changed. Refers to BTS #240&lt;br /&gt;
&lt;br /&gt;
===== TLMD3DEffectButton =====&lt;br /&gt;
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCalendar =====&lt;br /&gt;
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
[-] Date conversion with suffixes improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCurrencySettings =====&lt;br /&gt;
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDPopupMenu =====&lt;br /&gt;
[+] OnAfterPopup event&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioGroup =====&lt;br /&gt;
[-] Shift-Tab handling was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextEditDlg =====&lt;br /&gt;
[+] OnCustomize event; the Sender parameter contains reference to the shown form. You can typecast it e.g. via with TLMDFrmTextEditor(Sender) do...; and modify any kind of visual appeance of the dialog. Make sure that LMDTextEditor unit was added to uses clause. Check also this unit to review which controls are located on this form.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] AlwaysReturnText property. Enable this property if no ModalResult button is available on dialog (e.g. via teBottomPanel option). Always Text of memo in dialog control is set to Text property.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New flags for Options property: [1] teStatusBar (displays statusbar) [2] teBottomPanel (displays bottom panel with Ok, Cancel and optional Custom button). Note: teStatusBar and teBottomPanel should not be enabled at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPack controls =====&lt;br /&gt;
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDTextRadioGroup display problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60a (24-Sep-2004) ====&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[-] Retrieving Value property fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== LMDUtils.pas =====&lt;br /&gt;
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60 (17-Sep-2004) ====&lt;br /&gt;
===== TLMDButtonBar =====&lt;br /&gt;
[-] Drawing of small items when SmallGlyph is assigned fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional minor changes in control and component editor&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[+] AllowAllUp property for Buttons items added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckGroup =====&lt;br /&gt;
[*] Improved TabStop behaviour&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomContainer (and derived controls) =====&lt;br /&gt;
[*] Assign method was changed, so that component editors of main controls work now in derived controls &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDDBRadioGroup =====&lt;br /&gt;
[-] Problem with previously open tables fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
Control is now able to display text even if no sections are defined at all.&lt;br /&gt;
&lt;br /&gt;
===== TLMDMessageDlg =====&lt;br /&gt;
[+] CtlXP property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Escape key now already closes dialog and returns mrCancel result&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Default positioning was changed in various ways&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Yes to All/No to All buttons are now supported&amp;lt;br&amp;gt;&lt;br /&gt;
[-] If no buttons for display are specified -&amp;gt; ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDRadioButton =====&lt;br /&gt;
[-]  Minor bug fixed when Checked is disabled via code while control is focused&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSendKeys =====&lt;br /&gt;
[+] {SPACE} key identifier supported&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDStatusBar =====&lt;br /&gt;
[+] CtlXP property (for drawing of sizegrip) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSysMenu =====&lt;br /&gt;
[-] Problem with ForceUpdate method in Menu mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTreeComboBox =====&lt;br /&gt;
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.59 (30-June-2004) ====&lt;br /&gt;
===== TLMDBaseEdit and descendants =====&lt;br /&gt;
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionButtons =====&lt;br /&gt;
[*] Several changes in connection with DropDownMenus&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCheckListComboBox =====&lt;br /&gt;
[*] AutoHeight feature for different font heights now enabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomComboExt (and all descendants) =====&lt;br /&gt;
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomMaskEdit =====&lt;br /&gt;
[-] On creating a date string it happened that an access to an empty string with fmt_str[1] was made. Now datetostr will work if the date has a &amp;quot;suffix&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDHeaderListComboBox =====&lt;br /&gt;
[-] Frame around Checklistbox now longer hidden when items are deleted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDSplitterPanel =====&lt;br /&gt;
[+] AutoResizePanes property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDTextPrinter =====&lt;br /&gt;
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.58 (19-May-2004) ====&lt;br /&gt;
[ParsePack]&lt;br /&gt;
Several HTML output issues fixed&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomControl and descendants =====&lt;br /&gt;
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.57 (11-May-2004) ====&lt;br /&gt;
===== TLMDButtonPanel =====&lt;br /&gt;
[-] AddButton/InsertButton AV fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCaptionPanel  =====&lt;br /&gt;
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDCustomBevelPanel and descendants =====&lt;br /&gt;
[+] NoHandleUpdate property. Enable this property if handle of panel should be kept when Bevel settings are changed. This property might beuseful e.g. when an edit control is placed within a panel and panel width should be changed when enduser enters/exits edit field.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEdit =====&lt;br /&gt;
[-]  Insert after AutoSelect and right key now at the correct, position, left key (first char of text is selected, pos on that one) will remove the selection now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDEditAutoComplete =====&lt;br /&gt;
[-] Problem with empty strings in Popup mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDListBox =====&lt;br /&gt;
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDNoteBook =====&lt;br /&gt;
[-] SaveResources mode was always on, this was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 SourcePack (16-Feb-2004) ====&lt;br /&gt;
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Edit/Memos]&lt;br /&gt;
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Performance drop when using WinXP Themes solved&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Cursor problem when Memo was ActiveControl on a form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 (19-Jan-2004) ====&lt;br /&gt;
[*] DBSpeedButtons provides now ButtonStyle property &amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnContextPopup is generated in BaseEdit and descendants&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CaptionButtons problem with Arrow buttons fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV when setting Active property in TrayIcon component fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomPanelFill update at designtime fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD BarPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03.00 (07-Mar-2007) ====&lt;br /&gt;
[*] Several performance improvements, Delphi 2007 compatibility.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02.00 (25-Feb-2006) ====&lt;br /&gt;
===== TLMDBarHTMLLabel =====&lt;br /&gt;
[+] LineGap property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== TLMDExplorerBarSections =====&lt;br /&gt;
[+] Margin property added (specifies border in sections)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] InfoLineGap property added. Allow specification of line gaps in Information label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.60 (30-May-2005) ====&lt;br /&gt;
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.54 (08-Dec-2004) ====&lt;br /&gt;
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.53 (10-Sep-2004) ====&lt;br /&gt;
[-] AVs fixed during running animations&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Glyphs assigned to control's Glyph properties are now used correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.52 (30-June-2004) ====&lt;br /&gt;
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.51 (21-May-2004) ====&lt;br /&gt;
[-] Repaint problem in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.50 (21-Apr-2004) ====&lt;br /&gt;
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small resource Leak in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.01 (28-July-2003) ====&lt;br /&gt;
[-] LMDBarCtlXPSupported function can be used to check whether Themes is available and enabled for current application (defined in LMDBarBase). This method was accidentally used in ExplorerBar demo in first release but now made public.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
===== Initial Release. =====&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDDesignPanel: &amp;quot;Autoscroll&amp;quot; property not persistent fixed (BDS2006)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.00 (31-Oct-2005) ====&lt;br /&gt;
[-] Workaround for custom memory manager (Fast MM) problem added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.01 (21-Apr-2005) ====&lt;br /&gt;
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.00 (10-Sep-2004) ====&lt;br /&gt;
[+] ReadOnly property for diagram controls&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.20.00 (23-Jun-2004) ====&lt;br /&gt;
Feature Update! Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.10.00 (06-Jan-2004) ====&lt;br /&gt;
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.20 (09-Aug-2003) ====&lt;br /&gt;
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD FxPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
Initial Release (08-Dec-2004)&lt;br /&gt;
No updates available yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.60 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.50 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDRichEdit: Changes in FindText and ReplaceText method. New default for options parameter is [searchDown]. Thus FoundAt:= Editor.FindText( 'LMD', 0, Length(Editor.Lines.Text)); will search for the first occurence of 'LMD'. If searchDown flag is not set, search is processed from StartPos towards beginning of the document (RichEdit DLL version 2 or better required). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 7.03.02 release of LMD-Tools an additional Demo (Delphi\RichEdit_Execute) was added for demonstrating a way to encapsulate RTF dialog in a method (such Execute methods will be part of the next major RichPack release).&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.10 (25-Feb-2006) ====&lt;br /&gt;
[+] Numbering actions: FirstIndent/LeftIndent properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.00 (15-Nov-2005) ====&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] BTS #317 fixed (scrollbar problem with different dpi settings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (25-August-2005) ====&lt;br /&gt;
[TLMDRichLabel and descendants]&lt;br /&gt;
[*] Cursor property functionality enabled in RichLabel controls as used in VCL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEdit and descendants]&lt;br /&gt;
[+] ShowDefaultPopup property: If enabled, no default menu is shown.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnBeforeSave, OnAfterSave events. Use the later one if you want to switch off automatic optimizing of RichText display after save operations (which could lead to movement of scrollbar etc., though). Simply set skipDefaultBehaviour value to true in this case.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEditActions]&lt;br /&gt;
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.61 (12-May-2005) ====&lt;br /&gt;
Fix in label controls where after special characters links were no longer recognized.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.60 (15-Mar-2005) ====&lt;br /&gt;
[-] Various fixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.51 (24-Sep-2004) ====&lt;br /&gt;
[-] AV with TLMDRichEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.50 (14-Sep-2004) ====&lt;br /&gt;
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several other minor bugfixes and changes for VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.11 (30-Jun-2004) ====&lt;br /&gt;
[-] Several minor bugfixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (30-Mar-2004) ====&lt;br /&gt;
[*] TLMDRichLabel link handling changed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (29-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[*] RTFText property reintroduced&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel and descendants]&lt;br /&gt;
[-] Several problems with bevel painting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Storage Controls, Collection Editor]&lt;br /&gt;
[+] You can open editor for an item via double click instead via object inspector now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (08-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] several position and TLMDRuler issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] Resizing problems fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[HyperText]&lt;br /&gt;
[+] Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.00 (09-Dec-2003) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] Ability to past raw text improved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed several bugs with non-English charset.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] procedure InsertGraphic(aGraphic: TGraphic);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] improved display in transparent &amp;amp; smoothing mode&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed bug with change of DeltaX and DeltaY values&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] Division by Zero error fixed which happened eventually when loading different text snippets&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar initialization when loading different files corrected&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichSyntaxEdit]&lt;br /&gt;
[*] processing non-standard keywords, work scheme and work speed improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Hint]&lt;br /&gt;
[*] You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (23-Nov-2003) ====&lt;br /&gt;
[-] bug fixed: put link text to Clipboard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] bug fixed: clear selection with links&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDRichScrollBox: flickering when using scrollbars reduced&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed several bugs with Indents.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.01 (19-Jan-2007) ====&lt;br /&gt;
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (12-Nov-2006) ====&lt;br /&gt;
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:&amp;lt;br&amp;gt;&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); --&amp;gt;  sort after column of type aColumn, e.g. sh.SortColumn(cdName);&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
  procedure SortColumn(aIndex:Integer); --&amp;gt; sort after column with index aIndex, e.g. sh.SortColumn(1);&lt;br /&gt;
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
[-] TLMDShellList: Problem with frames fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.50 (25-Feb-2006) ====&lt;br /&gt;
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (17-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes, VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SearchPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.04.10 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDSearchFileGrep: AV on locked files fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.50 (14-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.10 (04-Jul-2004) ====&lt;br /&gt;
[TLMDSearchFileGrep] (suggested by ConDev)&lt;br /&gt;
[+] property TemplateValid : Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] property OnTemplateInvalid : TNotifyEvent&amp;lt;br&amp;gt;&lt;br /&gt;
If upon assignment of &amp;quot;SearchString&amp;quot; the template parsing fails, the &amp;quot;TemplateValid&amp;quot; property is set accordingly.&lt;br /&gt;
In addition the &amp;quot;OnTemplateInvalid&amp;quot; event is used to suppress former message (or let the user decide what error message pops up)&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03 (20-Oct-2003) ====&lt;br /&gt;
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but&amp;lt;br&amp;gt;&lt;br /&gt;
contents of file could not be checked.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.02 (30-Aug-2003) ====&lt;br /&gt;
[-] Fixed: Skip character after found wildcard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: Result list fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01 (19-May-2003) ====&lt;br /&gt;
[-] Problem with search expression starting at first position fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] MatchCase bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.50 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDSysPrinter info display corrected &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] pfWinVista added for TLMDSysPlatform type&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.00 (17-Jan-2006) ====&lt;br /&gt;
[-] BTS# 284 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.52 (24-Sep-2004) ====&lt;br /&gt;
[-] Fix for AV in SysMemoryObject&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem in TLMDSysTimeZone fixed (BTS #146)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.51 (14-Sep-2004) ====&lt;br /&gt;
[*] Changes in memory detection routines&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.50 (20-Apr-2004) ====&lt;br /&gt;
[TLMDSysInfoListView ]&lt;br /&gt;
[+] ShowDescriptionColumn property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Columns property made public&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDSysNetworkEnumerator]&lt;br /&gt;
[+] OnEnumItem event&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CancelThread method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.20 (19-Jan-2007) ====&lt;br /&gt;
[-] Small memory leaks in TLMDStorXML.Parse fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.30 (25-July-2005) ====&lt;br /&gt;
[TLMDStorXMLVault]&lt;br /&gt;
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to &amp;lt;LMDStorageData&amp;gt; and &amp;lt;/LMDStorageData&amp;gt;). Use with care for existing applications!&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Release 1.08.10 (27-May-2005) ====&lt;br /&gt;
[TLMDStorINIVault]&lt;br /&gt;
[-] Bug with corrupting INI file after list properties fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.00 (17-Sep-2004) ====&lt;br /&gt;
[TLMDStorPropertiesStorage]&lt;br /&gt;
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.&amp;lt;br&amp;gt;&lt;br /&gt;
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.&lt;br /&gt;
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDOSReader.OnNotFound event added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.07.00 (10-July-2004) ====&lt;br /&gt;
[+] OnCustomRootRead &amp;amp; OnCustomRootWrite events for Vault controls. Allow specification of custom root control.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDStorPropertiesStorage: Frames are supported now.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several bugfixes in Vault controls.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDStorage-Base64 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.50 (30-Mar-2004) ====&lt;br /&gt;
[-] &amp;quot;Data not found&amp;quot; bug when no active section was set fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.40 (29-Jan-2004) ====&lt;br /&gt;
[-] XML-Parser: Problem with &amp;lt;CR&amp;gt; in properties fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Chars [#0..#31,'%','&amp;quot;'] stores now in vault controls as %00..%1F,%25...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.30 (31-Dec-2003) ====&lt;br /&gt;
[-] Problem with doubled attributes in XML files solved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.20 (04-Nov-2003) ====&lt;br /&gt;
[-] Fixes in Visual designer, e.g.compatbility with TChart control&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06 (20-Oct-2003) ====&lt;br /&gt;
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Stack overflow in certain conditions in visual design editor fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.05 (05-Sep-2003) ====&lt;br /&gt;
[LMDStorBase.pas TLMDAbstractStorageVault]&lt;br /&gt;
[*] Fixed procedure SetFileName - now file name isn't stripped during loading&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Add new property &amp;quot;AutoUpdate&amp;quot; in base storage class  TLMDAbstractStorageVault. It is used by INI and XML vaults to toggle save mode between update after each property change (slow) and cached writing (fast).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorINIVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorXMLVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.04 (25-July-2003) ====&lt;br /&gt;
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03 (02-July-2003) ====&lt;br /&gt;
[-] Minor Problems with dynamic objects were fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02 (01-July-2003) ====&lt;br /&gt;
[-] Problems with XML format were fixed (quoted strings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.01 (19-May-2003) ====&lt;br /&gt;
[-] Bug in visual design editor which caused an infinity loop was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.01 (21-Apr-2005) ====&lt;br /&gt;
[*] Minor changes in TLMDDownload class&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (15-Sep-2004) ====&lt;br /&gt;
[*] Many changes for VCL.NET compatbility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.20 (30-Mar-2004) ====&lt;br /&gt;
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.10 (28-Jan-2004) ====&lt;br /&gt;
[-] URL decode function fixed (e.g. for Scan control)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor problem with Charset in Download Form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Unnecessary calls in RAS support removed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (20-Oct-2003) ====&lt;br /&gt;
[-] Several minor bugs fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (15-Sep-2003) ====&lt;br /&gt;
[-] News demos for Delphi updated. In source version english resource file is by default installed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDWebHTTPScan: Memory leak fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDWebHTTPScan.Clear method added.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	<entry>
		<id>https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3809</id>
		<title>LMD-Tools TroubleShooting/FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.lmd.de/index.php?title=LMD-Tools_TroubleShooting/FAQ&amp;diff=3809"/>
				<updated>2017-08-18T09:54:28Z</updated>
		
		<summary type="html">&lt;p&gt;Fduch: Created page with &amp;quot;{{HEAD-ResOnly}}  == Introduction ==  This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HEAD-ResOnly}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This documents contains history logs for LMD-Tools 2004 releases.&amp;lt;br&amp;gt; '''Legend'''&amp;lt;br&amp;gt; [+] Feature added&amp;lt;br&amp;gt; [*] Feature changed&amp;lt;br&amp;gt; [-] Bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== History Logs ==&lt;br /&gt;
=== LMD-Tools Core 7.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.10 (06-June-2007) ====&lt;br /&gt;
[*] Enhanced CodeGear RAD Studio 2007 integration&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Transparent (first) display of TLMDCalendarComboBox fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.13.00 (20-May-2007) ====&lt;br /&gt;
[+] OnMouseActivate and OnContextPopUp property events added to several controls&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional D2k7 and Vista adaptions&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60A (20-Mar-2007) ====&lt;br /&gt;
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.60 (07-Mar-2007) ====&lt;br /&gt;
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.51 (05-Feb-2007) ====&lt;br /&gt;
[-] TLMDFormVistaExtension functionality integrated again&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.50 (19-Jan-2007) ====&lt;br /&gt;
Designtime Editors&lt;br /&gt;
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit and descendants&lt;br /&gt;
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Numberbase related minor fixes;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomExtSpinEdit and descendants&lt;br /&gt;
[+] CurrencySettings made published;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;&amp;lt;br&amp;gt;&lt;br /&gt;
[-] OnChange issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12.01 (21-Dec-2006) ====&lt;br /&gt;
Designtime Editors&lt;br /&gt;
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.12 (14-Dec-2006) ====&lt;br /&gt;
General &lt;br /&gt;
[+] New control: TLMDTaskDialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New control: TLMDFormVistaExtension&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseEdit and descendants&lt;br /&gt;
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Display problem in DB descendants fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomDockLabel&lt;br /&gt;
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit and descendants&lt;br /&gt;
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)&lt;br /&gt;
[+] Number bases other than 10 now supported for all meFloat* masks.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deleting whole text in meInteger is now correctly handled.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Check for rounding moved from ChangedText to asFloat.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ReadDate, WriteDate cleaned up &amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display after changing MaskType. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Suffix didn't display when control was just loaded. Fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several .net compatibility fixes.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFileOpenEdit, TLMDFileSaveEdit&lt;br /&gt;
[+] StartWithLastName, StartWithLastPath properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDHideNonVC&lt;br /&gt;
[-] Access Violation problem in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMessageDlg&lt;br /&gt;
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTrackBar&lt;br /&gt;
[-] Artefact problem with hints fixed &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.11 (16-Nov-2006) ====&lt;br /&gt;
General &lt;br /&gt;
[*] Several changes to ensure Windows Vista compatibility. Another planned update (7.12) will be released in December which will contain additional improvements (mainly concerning UAC handling for system controls). Another known problem in Vista RC release: Tracing property of Font3D/Fx objects may not work properly.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 453 (several memory leaks) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDAlarmComponent&lt;br /&gt;
[-] Process termination issue fixed (BDS2006 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCalendar&lt;br /&gt;
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox)&lt;br /&gt;
[*] BTS #462 --&amp;gt; Clear method updated&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit&lt;br /&gt;
[-]Minor fix for overwrite mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMemo&lt;br /&gt;
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDForm&lt;br /&gt;
[-] BTS #458 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional position checkings - ensures that form is always completely visible on desktop.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMaskEdit &lt;br /&gt;
[-] Issues in Currency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDScrollBar&lt;br /&gt;
[-] Missing Mouse events added&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.10 (25-Sep-2006) ====&lt;br /&gt;
TLMDAlarmComponent: &lt;br /&gt;
  - CPU 100% usage issue fixed (BTS #444)&lt;br /&gt;
  - Lost alarm list items when deactivating issue fixed&lt;br /&gt;
  - Thread is no longer active when control is disabled&lt;br /&gt;
  + LMDAlarmItem.PassTimes property added&lt;br /&gt;
  + ResetItems method added&lt;br /&gt;
&lt;br /&gt;
TLMDAssist &lt;br /&gt;
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseEdit and descendants&lt;br /&gt;
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDButtonControl (CheckBox, RadioGroup and all similar controls)&lt;br /&gt;
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomComboBox and descendants&lt;br /&gt;
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDNoteBook&lt;br /&gt;
[*] Switching between theme settings (CtlXP) improved&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.10.00 (18-Aug-2006) ====&lt;br /&gt;
General&lt;br /&gt;
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCaptionButton &lt;br /&gt;
[-] Issue reported in BTS #379 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBExtSpinEdit&lt;br /&gt;
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDHeaderListComboBox&lt;br /&gt;
[+] DropDownStyle property added (BTS #378)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDIniCtrl&lt;br /&gt;
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SectionsExists and ValueExists methods added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTrackBarComboBox&lt;br /&gt;
[-] Problem with non-default MinValues (&amp;lt;10) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDWndButtonShape&lt;br /&gt;
[-] OffsetDirection property (BTS #376) &amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.05.00 (10-Apr-2006) ====&lt;br /&gt;
TLMDAlarmComponent&lt;br /&gt;
[-] Missing check for Active state added;&amp;lt;br&amp;gt;&lt;br /&gt;
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseGraphicButton&lt;br /&gt;
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDClock&lt;br /&gt;
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomGroup and descendants&lt;br /&gt;
[*] Columns number &amp;gt;12 is possible now.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomListComboBox&lt;br /&gt;
[-] Control does no longer lose items when handle of control is recreated.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBLight&lt;br /&gt;
[+] ValueChecked property added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBSwitch&lt;br /&gt;
[+] ValueChecked/ValueUnChecked properties added.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFaceController&lt;br /&gt;
[-] AVs at designtime in certain situations fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMaskEdit&lt;br /&gt;
[-] Problem with &amp;quot;-&amp;quot; characters in number masks fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] moving current pos while pressing &amp;quot;-&amp;quot; in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] inserting first char instead of overwriting in meCurrency mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] stopping at decimalsep while deleting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] extra zeroes while overwriting decimalsep fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fractional part deletion when single digit before decimalsep is deleted fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes in Currency mode.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMouseFencer&lt;br /&gt;
[*] Minor change as suggested in BTS #375-&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDStaticText&lt;br /&gt;
[*] BTS #374 (Visible property published). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.04.00 (27-Feb-2006) ====&lt;br /&gt;
General&lt;br /&gt;
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDAlarmComponent&lt;br /&gt;
[*] Items Date and Time made public &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBrowseDlg &lt;br /&gt;
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn &amp;lt;br&amp;gt;&lt;br /&gt;
[+] New system folders added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDButtonBar&lt;br /&gt;
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomRadioGroup and descendants&lt;br /&gt;
[-] Fixed focus setting when ItemIndex changes &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDForm&lt;br /&gt;
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDHTMLLabel&lt;br /&gt;
[+] LineGap property added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.10 (16-Feb-2006) ====&lt;br /&gt;
This release was made available for LMD-Tools SE user only.&lt;br /&gt;
&lt;br /&gt;
[-] BTS #363 (TLMDLEDLabel issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Broken Caption / Hint editor in VCL.NET releases fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.02 (17-Jan-2006) ====&lt;br /&gt;
This release is especially intented for C++ user of BDS 2006.&lt;br /&gt;
&lt;br /&gt;
LMDSysIn.pas&lt;br /&gt;
[-] Linkage problem in BDS2006 for C++ personality fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp&lt;br /&gt;
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDNoteBook&lt;br /&gt;
[+] AutoFocus property added (FRT #46)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseGraphicButton and descendants&lt;br /&gt;
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.01 (21-Nov-2005) ====&lt;br /&gt;
LMD-Tools SE assembly (VCL.NET and SE version only)&lt;br /&gt;
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).&lt;br /&gt;
&lt;br /&gt;
TLMDFontSizeComboBox&lt;br /&gt;
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.03.00 (14-Nov-2005) ====&lt;br /&gt;
TLMDAssist&lt;br /&gt;
[+] Transparent and CtlXP support added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomButton&lt;br /&gt;
[*] Focus is no longer drawn when button is disabled&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit&lt;br /&gt;
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskCheck property added (if enabled, pressing Enter key will force a validation of the current input. Previously mask was only tested when user exits control).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ForceMaskValidation method added. Use this method to case mask validation via code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMemo&lt;br /&gt;
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDImagelist(Item)&lt;br /&gt;
[-] BTS# 322 fixed (problem with custom memory manager, e.g. FastMM). This workaround should also fix similar problem with CodeGuard in CBuilder 5 and 6.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDScrollBar(Object)&lt;br /&gt;
[+] New property BarWidth. Allows specification of with (in vertical) or height (in horizontal mode) of scrollbar. Especially useful e.g. in TLMDCustomMemo and derived controls to change the width/height of inner scrollbars. Use values of 0 or less to let control determine system settings for scrollbars.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TextPack components&lt;br /&gt;
For several TextPack components additional properties from ancestor controls were published.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.02.00 (25-Aug-2005) ====&lt;br /&gt;
General Change: XP Theme support &lt;br /&gt;
The XP Theme support was redesigned due to a bug in Windows XP Theme support. To workaround this, LMD-Tools controls do no longer use dynamic handles for drawing themed items. Problems like reported in BTS #245 should be therefore solved from this release on.&lt;br /&gt;
&lt;br /&gt;
TLMDAboutDlg&lt;br /&gt;
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:&amp;lt;br&amp;gt;&lt;br /&gt;
procedure MyForm.AboutCustomize (Sender:TObject); &lt;br /&gt;
begin&lt;br /&gt;
  with TForm (Sender) do&lt;br /&gt;
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';&lt;br /&gt;
  [..]&lt;br /&gt;
&lt;br /&gt;
TLMDAlarmComponent&lt;br /&gt;
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Deletion of alarm dates problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.)&lt;br /&gt;
[-] Visible problem with Twinkle/Transparent enabled at same time fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Twinkle effect is no longer shown at design time &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseEdit&lt;br /&gt;
[-] BTS# 262 (invisible first character issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDBaseGraphicButton&lt;br /&gt;
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMemo (and descendants)&lt;br /&gt;
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCalendarEdit&lt;br /&gt;
[-] OnDlgClose problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons&lt;br /&gt;
[-] BTS# 245 (xp theme issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Structural changes concerning XP themes handling&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomDBEdit and -Memo (and descendants)&lt;br /&gt;
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomEdit (and descendants)&lt;br /&gt;
[-] BTS# 310 (DisplayText issue) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit (and descendants)&lt;br /&gt;
[-] BTS# 306 (inserting garbage in certain cases) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBMaskedEdit&lt;br /&gt;
[-] TBCDField issue fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFileCtrl&lt;br /&gt;
[+] Property &amp;quot;FileStampFormat&amp;quot; added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFileGrep&lt;br /&gt;
[-] Filesizes &amp;gt;2GB are now supported. FileSize properties are now of Int64 type.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDFormDisplay&lt;br /&gt;
[-] BTS# 041 (action shortcuts issue) fixed - TLMDFormDisplay.NewWndProc changed; with this change and correct use of flags (HookWindowProc = True, UseResForms = True) action shortcuts work correct&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDShapeControl&lt;br /&gt;
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTipDlg&lt;br /&gt;
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Empty lines in Tips list are always skipped now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01.10 (27-May-2005) ====&lt;br /&gt;
All (focusable) button controls&lt;br /&gt;
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCalendar&lt;br /&gt;
[-] OnMonthChange problem fixed (BTS #286)&amp;lt;br&amp;gt;&lt;br /&gt;
TLMDCustomMemo&lt;br /&gt;
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCheckBox, TLMDRadioButton and other glyph/text controls&lt;br /&gt;
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDShape- and MessageHint&lt;br /&gt;
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.01  (20-Apr-2005) ====&lt;br /&gt;
VCL.NET release of core controls introduced.&lt;br /&gt;
&lt;br /&gt;
TLMDCalendar&lt;br /&gt;
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCaptionPanel&lt;br /&gt;
[+] Support of OnMouse* events added.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ClientPanel property (public, read-only) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDGlyphLabel&lt;br /&gt;
[-] Wordwrap problem in multiline mode when image is shown fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDImage- and BitmapList&lt;br /&gt;
[+] New PixelFormat: spf16bit&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDListBox&lt;br /&gt;
[-] Header sections are now shown when ListBox is placed on TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
[-] 25 can now be set for HeaderHeight property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMemo&lt;br /&gt;
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMessageDlg&lt;br /&gt;
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] ButtonTitles problem fixed. Button captions must be specified in same order as TMsgDlgBtn is defined: 0. mbYes, 1. mbNo, 2. mbOK, 3. mbCancel, 4. mbAbort, 5. mbRetry, 6. mbIgnore, 7. mbAll, 8. mbNoToAll, 9. mbYesToAll, 10. mbHelp (for Hints property: 11. Glyph/MessageText)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDSplitterPanel&lt;br /&gt;
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDStatusBar&lt;br /&gt;
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTrackBar&lt;br /&gt;
[-] Gradient settings with ColorLists work now correctly inside TFrame&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====&lt;br /&gt;
General Change: Label controls&lt;br /&gt;
Until this release code for AutoSize property was processed even if Align&amp;lt;&amp;gt;alNone. This was changed. Refers to BTS #240&lt;br /&gt;
&lt;br /&gt;
TLMD3DEffectButton&lt;br /&gt;
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCalendar&lt;br /&gt;
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:&amp;lt;br&amp;gt;&lt;br /&gt;
function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;&lt;br /&gt;
[-] Date conversion with suffixes improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCurrencySettings&lt;br /&gt;
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBRadioGroup&lt;br /&gt;
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDMessageDlg&lt;br /&gt;
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDPopupMenu&lt;br /&gt;
[+] OnAfterPopup event&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDRadioGroup&lt;br /&gt;
[-] Shift-Tab handling was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTextEditDlg&lt;br /&gt;
[+] OnCustomize event; the Sender parameter contains reference to the shown form. You can typecast it e.g. via with TLMDFrmTextEditor(Sender) do...; and modify any kind of visual appeance of the dialog. Make sure that LMDTextEditor unit was added to uses clause. Check also this unit to review which controls are located on this form.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] AlwaysReturnText property. Enable this property if no ModalResult button is available on dialog (e.g. via teBottomPanel option). Always Text of memo in dialog control is set to Text property.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New flags for Options property: [1] teStatusBar (displays statusbar) [2] teBottomPanel (displays bottom panel with Ok, Cancel and optional Custom button). Note: teStatusBar and teBottomPanel should not be enabled at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTextPack controls&lt;br /&gt;
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDTextRadioGroup display problem fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60a (24-Sep-2004) ====&lt;br /&gt;
TLMDCheckGroup&lt;br /&gt;
[-] Retrieving Value property fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LMDUtils.pas&lt;br /&gt;
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.60 (17-Sep-2004) ====&lt;br /&gt;
TLMDButtonBar&lt;br /&gt;
[-] Drawing of small items when SmallGlyph is assigned fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Additional minor changes in control and component editor&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDButtonPanel&lt;br /&gt;
[+] AllowAllUp property for Buttons items added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCheckGroup&lt;br /&gt;
[*] Improved TabStop behaviour&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomContainer (and derived controls)&lt;br /&gt;
[*] Assign method was changed, so that component editors of main controls work now in derived controls &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDDBRadioGroup&lt;br /&gt;
[-] Problem with previously open tables fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDListBox&lt;br /&gt;
Control is now able to display text even if no sections are defined at all.&lt;br /&gt;
&lt;br /&gt;
TLMDMessageDlg&lt;br /&gt;
[+] CtlXP property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Escape key now already closes dialog and returns mrCancel result&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton&amp;lt;br&amp;gt;&lt;br /&gt;
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Default positioning was changed in various ways&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Yes to All/No to All buttons are now supported&amp;lt;br&amp;gt;&lt;br /&gt;
[-] If no buttons for display are specified -&amp;gt; ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDRadioButton&lt;br /&gt;
[-]  Minor bug fixed when Checked is disabled via code while control is focused&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDSendKeys&lt;br /&gt;
[+] {SPACE} key identifier supported&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDStatusBar&lt;br /&gt;
[+] CtlXP property (for drawing of sizegrip) added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDSysMenu&lt;br /&gt;
[-] Problem with ForceUpdate method in Menu mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTreeComboBox&lt;br /&gt;
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.59 (30-June-2004) ====&lt;br /&gt;
TLMDBaseEdit and descendants&lt;br /&gt;
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCaptionButtons&lt;br /&gt;
[*] Several changes in connection with DropDownMenus&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCheckListComboBox&lt;br /&gt;
[*] AutoHeight feature for different font heights now enabled by default.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomComboExt (and all descendants)&lt;br /&gt;
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomMaskEdit&lt;br /&gt;
[-] On creating a date string it happened that an access to an empty string with fmt_str[1] was made. Now datetostr will work if the date has a &amp;quot;suffix&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDHeaderListComboBox&lt;br /&gt;
[-] Frame around Checklistbox now longer hidden when items are deleted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDSplitterPanel&lt;br /&gt;
[+] AutoResizePanes property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDTextPrinter&lt;br /&gt;
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.58 (19-May-2004) ====&lt;br /&gt;
[ParsePack]&lt;br /&gt;
Several HTML output issues fixed&lt;br /&gt;
&lt;br /&gt;
TLMDCustomControl and descendants&lt;br /&gt;
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.57 (11-May-2004) ====&lt;br /&gt;
TLMDButtonPanel&lt;br /&gt;
[-] AddButton/InsertButton AV fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCaptionPanel &lt;br /&gt;
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDCustomBevelPanel and descendants&lt;br /&gt;
[+] NoHandleUpdate property. Enable this property if handle of panel should be kept when Bevel settings are changed. This property might beuseful e.g. when an edit control is placed within a panel and panel width should be changed when enduser enters/exits edit field.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDEdit&lt;br /&gt;
[-]  Insert after AutoSelect and right key now at the correct, position, left key (first char of text is selected, pos on that one) will remove the selection now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDEditAutoComplete&lt;br /&gt;
[-] Problem with empty strings in Popup mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDListBox&lt;br /&gt;
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDNoteBook&lt;br /&gt;
[-] SaveResources mode was always on, this was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 SourcePack (16-Feb-2004) ====&lt;br /&gt;
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Edit/Memos]&lt;br /&gt;
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Performance drop when using WinXP Themes solved&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Cursor problem when Memo was ActiveControl on a form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 7.00.23 (19-Jan-2004) ====&lt;br /&gt;
[*] DBSpeedButtons provides now ButtonStyle property &amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnContextPopup is generated in BaseEdit and descendants&amp;lt;br&amp;gt;&lt;br /&gt;
[-] CaptionButtons problem with Arrow buttons fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] AV when setting Active property in TrayIcon component fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDCustomPanelFill update at designtime fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD BarPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03.00 (07-Mar-2007) ====&lt;br /&gt;
[*] Several performance improvements, Delphi 2007 compatibility.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02.00 (25-Feb-2006) ====&lt;br /&gt;
TLMDBarHTMLLabel&lt;br /&gt;
[+] LineGap property&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TLMDExplorerBarSections&lt;br /&gt;
[+] Margin property added (specifies border in sections)&amp;lt;br&amp;gt;&lt;br /&gt;
[+] InfoLineGap property added. Allow specification of line gaps in Information label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.60 (30-May-2005) ====&lt;br /&gt;
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.54 (08-Dec-2004) ====&lt;br /&gt;
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.53 (10-Sep-2004) ====&lt;br /&gt;
[-] AVs fixed during running animations&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Glyphs assigned to control's Glyph properties are now used correctly&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.52 (30-June-2004) ====&lt;br /&gt;
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.51 (21-May-2004) ====&lt;br /&gt;
[-] Repaint problem in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.50 (21-Apr-2004) ====&lt;br /&gt;
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Small resource Leak in TLMDExplorerBar fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.00.01 (28-July-2003) ====&lt;br /&gt;
[-] LMDBarCtlXPSupported function can be used to check whether Themes is available and enabled for current application (defined in LMDBarBase). This method was accidentally used in ExplorerBar demo in first release but now made public.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD DesignPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDDesignPanel: &amp;quot;Autoscroll&amp;quot; property not persistent fixed (BDS2006)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.22.00 (31-Oct-2005) ====&lt;br /&gt;
[-] Workaround for custom memory manager (Fast MM) problem added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.01 (21-Apr-2005) ====&lt;br /&gt;
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.21.00 (10-Sep-2004) ====&lt;br /&gt;
[+] ReadOnly property for diagram controls&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.20.00 (23-Jun-2004) ====&lt;br /&gt;
Feature Update! Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.10.00 (06-Jan-2004) ====&lt;br /&gt;
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.20 (09-Aug-2003) ====&lt;br /&gt;
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD FxPack 1.X ===&lt;br /&gt;
&lt;br /&gt;
Initial Release (08-Dec-2004)&lt;br /&gt;
No updates available yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD RichPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.60 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.50 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDRichEdit: Changes in FindText and ReplaceText method. New default for options parameter is [searchDown]. Thus FoundAt:= Editor.FindText( 'LMD', 0, Length(Editor.Lines.Text)); will search for the first occurence of 'LMD'. If searchDown flag is not set, search is processed from StartPos towards beginning of the document (RichEdit DLL version 2 or better required). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 7.03.02 release of LMD-Tools an additional Demo (Delphi\RichEdit_Execute) was added for demonstrating a way to encapsulate RTF dialog in a method (such Execute methods will be part of the next major RichPack release).&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.10 (25-Feb-2006) ====&lt;br /&gt;
[+] Numbering actions: FirstIndent/LeftIndent properties added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.06.00 (15-Nov-2005) ====&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] BTS #317 fixed (scrollbar problem with different dpi settings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (25-August-2005) ====&lt;br /&gt;
[TLMDRichLabel and descendants]&lt;br /&gt;
[*] Cursor property functionality enabled in RichLabel controls as used in VCL&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEdit and descendants]&lt;br /&gt;
[+] ShowDefaultPopup property: If enabled, no default menu is shown.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] OnBeforeSave, OnAfterSave events. Use the later one if you want to switch off automatic optimizing of RichText display after save operations (which could lead to movement of scrollbar etc., though). Simply set skipDefaultBehaviour value to true in this case.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichEditActions]&lt;br /&gt;
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.61 (12-May-2005) ====&lt;br /&gt;
Fix in label controls where after special characters links were no longer recognized.&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.60 (15-Mar-2005) ====&lt;br /&gt;
[-] Various fixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.51 (24-Sep-2004) ====&lt;br /&gt;
[-] AV with TLMDRichEdit fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.50 (14-Sep-2004) ====&lt;br /&gt;
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several other minor bugfixes and changes for VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.11 (30-Jun-2004) ====&lt;br /&gt;
[-] Several minor bugfixes&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (30-Mar-2004) ====&lt;br /&gt;
[*] TLMDRichLabel link handling changed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (29-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[*] RTFText property reintroduced&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel and descendants]&lt;br /&gt;
[-] Several problems with bevel painting fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Storage Controls, Collection Editor]&lt;br /&gt;
[+] You can open editor for an item via double click instead via object inspector now&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (08-Jan-2004) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] several position and TLMDRuler issues fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); &amp;lt;br&amp;gt;&lt;br /&gt;
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).&amp;lt;br&amp;gt;&lt;br /&gt;
OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] Resizing problems fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[HyperText]&lt;br /&gt;
Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.00 (09-Dec-2003) ====&lt;br /&gt;
[TLMDRichEdit]&lt;br /&gt;
[-] Ability to past raw text improved. &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed several bugs with non-English charset.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).&amp;lt;br&amp;gt;&lt;br /&gt;
[+] procedure InsertGraphic(aGraphic: TGraphic);&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDCustomRichLabel]&lt;br /&gt;
[-] improved display in transparent &amp;amp; smoothing mode&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed bug with change of DeltaX and DeltaY values&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichScrollBox]&lt;br /&gt;
[-] Division by Zero error fixed which happened eventually when loading different text snippets&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Scrollbar initialization when loading different files corrected&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDRichSyntaxEdit]&lt;br /&gt;
[*] processing non-standard keywords, work scheme and work speed improved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Hint]&lt;br /&gt;
You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (23-Nov-2003) ====&lt;br /&gt;
[-] bug fixed: put link text to Clipboard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] bug fixed: clear selection with links&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDRichScrollBox: flickering when using scrollbars reduced&amp;lt;br&amp;gt;&lt;br /&gt;
[-] fixed several bugs with Indents.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ShellPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.01 (19-Jan-2007) ====&lt;br /&gt;
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.00 (12-Nov-2006) ====&lt;br /&gt;
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:&amp;lt;br&amp;gt;&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); --&amp;gt;  sort after column of type aColumn, e.g. sh.SortColumn(cdName);&lt;br /&gt;
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
  procedure SortColumn(aIndex:Integer); --&amp;gt; sort after column with index aIndex, e.g. sh.SortColumn(1);&lt;br /&gt;
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --&amp;gt; as before but with sort order aDirection.&lt;br /&gt;
[-] TLMDShellList: Problem with frames fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.50 (25-Feb-2006) ====&lt;br /&gt;
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01.00 (17-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes, VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD ScriptPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.00.00 (16-Aug-2006) ====&lt;br /&gt;
Initial Release.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SearchPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.04.10 (18-Aug-2006) ====&lt;br /&gt;
[-] TLMDSearchFileGrep: AV on locked files fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.50 (14-Sep-2004) ====&lt;br /&gt;
[-] Several minor fixes&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03.10 (04-Jul-2004) ====&lt;br /&gt;
[TLMDSearchFileGrep] (suggested by ConDev)&lt;br /&gt;
[+] property TemplateValid : Boolean&amp;lt;br&amp;gt;&lt;br /&gt;
[+] property OnTemplateInvalid : TNotifyEvent&amp;lt;br&amp;gt;&lt;br /&gt;
If upon assignment of &amp;quot;SearchString&amp;quot; the template parsing fails, the &amp;quot;TemplateValid&amp;quot; property is set accordingly.&lt;br /&gt;
In addition the &amp;quot;OnTemplateInvalid&amp;quot; event is used to suppress former message (or let the user decide what error message pops up)&lt;br /&gt;
&lt;br /&gt;
==== Release 2.03 (20-Oct-2003) ====&lt;br /&gt;
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but&amp;lt;br&amp;gt;&lt;br /&gt;
contents of file could not be checked.&lt;br /&gt;
&lt;br /&gt;
==== Release 2.02 (30-Aug-2003) ====&lt;br /&gt;
[-] Fixed: Skip character after found wildcard&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: Result list fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01 (19-May-2003) ====&lt;br /&gt;
[-] Problem with search expression starting at first position fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] MatchCase bug fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD SysPack 2.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.50 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDSysPrinter info display corrected &amp;lt;br&amp;gt;&lt;br /&gt;
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] pfWinVista added for TLMDSysPlatform type&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.01.00 (17-Jan-2006) ====&lt;br /&gt;
[-] BTS# 284 fixed &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.52 (24-Sep-2004) ====&lt;br /&gt;
[-] Fix for AV in SysMemoryObject&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Problem in TLMDSysTimeZone fixed (BTS #146)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.51 (14-Sep-2004) ====&lt;br /&gt;
[*] Changes in memory detection routines&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Several changes for improved VCL.NET compatibility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 2.00.50 (20-Apr-2004) ====&lt;br /&gt;
[TLMDSysInfoListView ]&lt;br /&gt;
[+] ShowDescriptionColumn property&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Columns property made public&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[TLMDSysNetworkEnumerator]&lt;br /&gt;
[+] OnEnumItem event&amp;lt;br&amp;gt;&lt;br /&gt;
[+] CancelThread method&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD StoragePack 1.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.20 (19-Jan-2007) ====&lt;br /&gt;
[-] Small memory leaks in TLMDStorXML.Parse fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.09.10 (10-Apr-2006) ====&lt;br /&gt;
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.30 (25-July-2005) ====&lt;br /&gt;
[TLMDStorXMLVault]&lt;br /&gt;
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to &amp;lt;LMDStorageData&amp;gt; and &amp;lt;/LMDStorageData&amp;gt;). Use with care for existing applications!&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Release 1.08.10 (27-May-2005) ====&lt;br /&gt;
[TLMDStorINIVault]&lt;br /&gt;
[-] Bug with corrupting INI file after list properties fixed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.08.00 (17-Sep-2004) ====&lt;br /&gt;
[TLMDStorPropertiesStorage]&lt;br /&gt;
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.&amp;lt;br&amp;gt;&lt;br /&gt;
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.&lt;br /&gt;
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDOSReader.OnNotFound event added&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.07.00 (10-July-2004) ====&lt;br /&gt;
[+] OnCustomRootRead &amp;amp; OnCustomRootWrite events for Vault controls. Allow specification of custom root control.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] TLMDStorPropertiesStorage: Frames are supported now.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Several bugfixes in Vault controls.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDStorage-Base64 fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.50 (30-Mar-2004) ====&lt;br /&gt;
[-] &amp;quot;Data not found&amp;quot; bug when no active section was set fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.40 (29-Jan-2004) ====&lt;br /&gt;
[-] XML-Parser: Problem with &amp;lt;CR&amp;gt; in properties fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[*] Chars [#0..#31,'%','&amp;quot;'] stores now in vault controls as %00..%1F,%25...&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.30 (31-Dec-2003) ====&lt;br /&gt;
[-] Problem with doubled attributes in XML files solved&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06.20 (04-Nov-2003) ====&lt;br /&gt;
[-] Fixes in Visual designer, e.g.compatbility with TChart control&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.06 (20-Oct-2003) ====&lt;br /&gt;
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Stack overflow in certain conditions in visual design editor fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.05 (05-Sep-2003) ====&lt;br /&gt;
[LMDStorBase.pas TLMDAbstractStorageVault]&lt;br /&gt;
[*] Fixed procedure SetFileName - now file name isn't stripped during loading&amp;lt;br&amp;gt;&lt;br /&gt;
[+] Add new property &amp;quot;AutoUpdate&amp;quot; in base storage class  TLMDAbstractStorageVault. It is used by INI and XML vaults to toggle save mode between update after each property change (slow) and cached writing (fast).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorINIVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[LMDStorXMLVault.pas TLMDStorINIVault]&lt;br /&gt;
[+] New property &amp;quot;AutoUpdate&amp;quot; of base storage class &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.04 (25-July-2003) ====&lt;br /&gt;
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.03 (02-July-2003) ====&lt;br /&gt;
[-] Minor Problems with dynamic objects were fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.02 (01-July-2003) ====&lt;br /&gt;
[-] Problems with XML format were fixed (quoted strings)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 1.01 (19-May-2003) ====&lt;br /&gt;
[-] Bug in visual design editor which caused an infinity loop was fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== LMD WebPack 3.X ===&lt;br /&gt;
&lt;br /&gt;
==== Release 3.05.00 (10-Apr-2006) ====&lt;br /&gt;
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.04.10 (25-Feb-2006) ====&lt;br /&gt;
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.01 (21-Apr-2005) ====&lt;br /&gt;
[*] Minor changes in TLMDDownload class&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.03.00 (15-Sep-2004) ====&lt;br /&gt;
[*] Many changes for VCL.NET compatbility&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.20 (30-Mar-2004) ====&lt;br /&gt;
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02.10 (28-Jan-2004) ====&lt;br /&gt;
[-] URL decode function fixed (e.g. for Scan control)&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Minor problem with Charset in Download Form fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] Unnecessary calls in RAS support removed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.02 (20-Oct-2003) ====&lt;br /&gt;
[-] Several minor bugs fixed&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Release 3.01 (15-Sep-2003) ====&lt;br /&gt;
[-] News demos for Delphi updated. In source version english resource file is by default installed.&amp;lt;br&amp;gt;&lt;br /&gt;
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed&amp;lt;br&amp;gt;&lt;br /&gt;
[-] TLMDWebHTTPScan: Memory leak fixed.&amp;lt;br&amp;gt;&lt;br /&gt;
[+] TLMDWebHTTPScan.Clear method added.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fduch</name></author>	</entry>

	</feed>