Difference between revisions of "LMD-Tools TroubleShooting/FAQ"

From LMD
Jump to: navigation, search
(Created page with "{{HEAD-ResOnly}} == Introduction == This documents contains history logs for LMD-Tools 2004 releases.<br> '''Legend'''<br> [+] Feature added<br> [*] Feature changed<br> [-]...")
 
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{HEAD-ResOnly}}
+
== General ==
  
== Introduction ==
+
=== Compatibility Components are not installed by default! ===
 +
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).
  
This documents contains history logs for LMD-Tools 2004 releases.<br> '''Legend'''<br> [+] Feature added<br> [*] Feature changed<br> [-] Bug fixed<br>
+
===  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 ===
 +
# The problem happens only within IDE (does not affect the executable).
 +
# Get the projects #15804 and #16098 from Borland Codecentral and install in the IDE. Follow information in text files and problem will go away.
  
== History Logs ==
+
=== 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 "LMD[..].pas not found". ===
=== LMD-Tools Core 7.X ===
+
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.
  
==== Release 7.13.10 (06-June-2007) ====
+
=== 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. ===
[*] Enhanced CodeGear RAD Studio 2007 integration<br>
+
==== Up to LMD-Tools Version 4:====
[-] Transparent (first) display of TLMDCalendarComboBox fixed<br>
+
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.
 +
When you purchased a disk version the required information can be found on a separate piece of paper called "Registration Information". If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.
 +
==== Up to LMD Elpack 4:====  
 +
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.
 +
==== From LMD-Tools Version 4/LMD ElPack 5 on:====
 +
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 "LMD-Tools") 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.
  
 +
=== You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'. ===
  
==== Release 7.13.00 (20-May-2007) ====
+
==== Up to LMD-Tools Version 4:====
[+] OnMouseActivate and OnContextPopUp property events added to several controls<br>
+
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).
[*] Additional D2k7 and Vista adaptions<br>
+
==== From LMD-Tools Version 4 and LMD ElPack 5 on:====  
[-] Minor bug with InitialDir in TLMDFileSaveEdit/FileOpenEdit fixed<br>
+
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.
 +
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).
  
==== Release 7.12.60A (20-Mar-2007) ====
+
=== I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version? ===
[-] Delphi 2007 only: Design-time problem (IDE could freeze) fixed. <br>
+
There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.
 
 
==== Release 7.12.60 (07-Mar-2007) ====
 
[-] BTS #479 fixed (icon problem in TLMDTaskDialog within Windows Vista)<br>
 
[-] TLMDCustomMaskEdit: Redundant OnChange events problem fixed<br>
 
[-] TLMDFloatRangeValidator: Problems with low limit settings fixed.<br>
 
 
 
 
==== Release 7.12.51 (05-Feb-2007) ====
 
[-] TLMDFormVistaExtension functionality integrated again<br>
 
 
 
 
 
==== Release 7.12.50 (19-Jan-2007) ====
 
Designtime Editors
 
[-] TLMDSimpleBevel editor Stack overflow problem in certain IDEs fixed.<br>
 
 
 
TLMDCustomMaskEdit and descendants
 
[-] LMDDB*SpinEdit: OnChange was not triggered, fixed;<br>
 
[-] Numberbase related minor fixes;<br>
 
[-] Caret positioning while deleting and backspacing for meCurrency and meFloatNumber mask types fixed.<br>
 
 
 
TLMDCustomExtSpinEdit and descendants
 
[+] CurrencySettings made published;<br>
 
[-] LMDDB*SpinEdit: in OnChange event, Value property did not reflect the last change, fixed;<br>
 
[-] OnChange issue fixed<br>
 
 
 
 
 
==== Release 7.12.01 (21-Dec-2006) ====
 
Designtime Editors
 
[-] TLMDBevel editor Stack overflow problem in certain IDEs fixed.<br>
 
 
 
 
 
==== Release 7.12 (14-Dec-2006) ====
 
General
 
[+] New control: TLMDTaskDialog.<br>
 
[+] New control: TLMDFormVistaExtension<br>
 
 
 
TLMDBaseEdit and descendants
 
[*] MousePos parameter in OnContextPopUp returns now client coordinates instead of screen coordinates (default OnContextPopUp events)<br>
 
[*] Display problem in DB descendants fixed.<br>
 
 
 
TLMDCustomDockLabel
 
[-] BTS 407 issue fixed (if moving selected pair to a new location, the label moves twice as far as it should)<br>
 
 
 
TLMDCustomMaskEdit and descendants
 
(suffix, number base, LMDExtSpinEdit related fixes and optimizations)
 
[+] Number bases other than 10 now supported for all meFloat* masks.<br>
 
[-] Deleting whole text in meInteger is now correctly handled.<br>
 
[-] Check for rounding moved from ChangedText to asFloat.<br>
 
[-] ReadDate, WriteDate cleaned up <br>
 
[-] LMDGetFloatBaseString fixed for fractions with base other than 10.<br>
 
[-] Suffix didn't display after changing MaskType. Fixed.<br>
 
[-] GetSuffix function fixed (it deleted symbols even if FText did not contain suffix).<br>
 
[-] Suffix didn't display when control was just loaded. Fixed.<br>
 
[-] Several .net compatibility fixes.<br>
 
 
 
TLMDFileOpenEdit, TLMDFileSaveEdit
 
[+] StartWithLastName, StartWithLastPath properties added<br>
 
 
 
TLMDHideNonVC
 
[-] Access Violation problem in BDS 2006 fixed.<br>
 
 
 
TLMDMessageDlg
 
[-] Correct Notification method added (solves problems when connected Wave-/CustomGlyphImageLists were removed from form)<br>
 
 
 
TLMDTrackBar
 
[-] Artefact problem with hints fixed <br>
 
 
 
 
==== Release 7.11 (16-Nov-2006) ====
 
General
 
[*] 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.<br>
 
[-] BTS# 453 (several memory leaks) fixed<br>
 
 
 
TLMDAlarmComponent
 
[-] Process termination issue fixed (BDS2006 only)<br>
 
 
 
TLMDCalendar
 
[-] Repaint problem in certain header buttons states in BDS 2006 fixed.<br>
 
 
 
TLMDCustomExtCombo descendants (TLMDCheckListComboBox, TLMDCustomListComboBox, TLMDTreeComboBox, TLMDHeaderListComboBox)
 
[*] BTS #462 --> Clear method updated<br>
 
 
 
TLMDCustomMaskEdit
 
[-]Minor fix for overwrite mode<br>
 
 
 
TLMDCustomMemo
 
[*] Minor changes to reflect fixes in LMDSBar/TLMDScrollBar<br>
 
 
 
TLMDForm
 
[-] BTS #458 fixed<br>
 
[*] Additional position checkings - ensures that form is always completely visible on desktop.<br>
 
 
 
TLMDMaskEdit
 
[-] Issues in Currency mode fixed<br>
 
 
 
TLMDScrollBar
 
[-] Missing Mouse events added<br>
 
[-] Scroll codes fixed (now scrolling line down generates csLineDown instead of csLineUp as earlier, same with csPageUp/csPageDown). <br>
 
 
   
 
   
  
==== Release 7.10.10 (25-Sep-2006) ====
+
== IDE Notes ==
TLMDAlarmComponent:
 
  - CPU 100% usage issue fixed (BTS #444)
 
  - Lost alarm list items when deactivating issue fixed
 
  - Thread is no longer active when control is disabled
 
  + LMDAlarmItem.PassTimes property added
 
  + ResetItems method added
 
  
TLMDAssist
+
===  Corrupted/screwed Component Palette ===
[-] Drawing problems in themed mode fixed and switching between theme settings (CtlXP) improved<br>
+
Note: Problem seems to be solved in Delphi / CBuilder 6 and higher
  
TLMDBaseEdit and descendants
+
'''Answer 1:'''
[-] Alt Gr+Character problem in some keycode settings fixed (BTS #451)<br>
+
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).
 +
There are several ways to workaround:
 +
1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions.
 +
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).
  
TLMDButtonControl (CheckBox, RadioGroup and all similar controls)
+
'''Answer 2:'''
[+] MultiLine property added. Note: In previous releases MultiLine setting was always enabled. <br>
+
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).
 +
Try these:  
  
TLMDCustomComboBox and descendants
+
# 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)
[+] OnContextPopUp and OnCloseUp (from Delphi 6 on) events published.<br>
+
# Start Delphi with the -ns switch
 +
# Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)
 +
# 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.
 +
# reduce the hardware acceleration for the card. (display->properties->settings->advances->performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3).
 +
# Get the latest DirectX drivers.
 +
# After Delphi is started, change the color depth (you can change it right back) of your video card.
 +
Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors.  
  
TLMDNoteBook
+
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.
[*] Switching between theme settings (CtlXP) improved<br>
 
 
  
==== Release 7.10.00 (18-Aug-2006) ====
 
General
 
[+] Complete infrastructure (classes and interfaces) for validator and errorprovider controls added (16 controls)<br>
 
[+] 2 additional new controls added (TLMDRegExpr and TLMDExpressionEval).<br>
 
  
TLMDCaptionButton
+
===  Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help ===
[-] Issue reported in BTS #379 fixed<br>
+
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:
  
TLMDDBExtSpinEdit
+
To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files
[-] Error on saving edited value when EditType = ntFloatNumber (with thousand separators) fixed <br>
+
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).
  
TLMDHeaderListComboBox
 
[+] DropDownStyle property added (BTS #378)<br>
 
  
TLMDIniCtrl
+
===  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. ===
[+] MemIniFile support added (itMemIniFile mode; public MemFile property; Clear, Load, Save methods.<br>
+
'''Reason'''
[+] SectionsExists and ValueExists methods added<br>
+
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).
  
TLMDTrackBarComboBox
+
'''Solution'''
[-] Problem with non-default MinValues (<10) fixed<br>
+
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).
  
TLMDWndButtonShape
 
[-] OffsetDirection property (BTS #376) <br>
 
 
  
==== Release 7.05.00 (10-Apr-2006) ====
+
=== After successful installation, errors like "Can't find entry point [..] in lmd50_d5.bpl" occur after starting Delphi/CBuilder IDE. ===
TLMDAlarmComponent
+
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.
[-] Missing check for Active state added;<br>
 
[+] SleepTime property (TimeOut for LMDAlarmTimerThread); demo update<br>
 
  
TLMDBaseGraphicButton
 
[-] Behaviour corrected when State changes in grouped mode to unpressed and button is disabled at that time (wrong glyph was shown).<br>
 
  
TLMDClock
+
== Delphi Notes ==
[+] PauseStpWatch, ResumeStpWatch methods; StopwatchPausedTime property; OnPauseStopWatch, OnResumeStopWatch events added (allows to use TLMDClock as simple stopwatch with pause functionality).<br>
 
  
TLMDCustomGroup and descendants
+
===  ToolBar97 components ===
[*] Columns number >12 is possible now.<br>
+
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.
  
TLMDCustomListComboBox
 
[-] Control does no longer lose items when handle of control is recreated.<br>
 
  
TLMDDBLight
+
===  The support request Nr. 1 for LMD-Tools 5:  ===
[+] ValueChecked property added.<br>
+
[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED
 +
Reason: You did not uninstall a previous version (e.g. Release 5.X) completely.
 +
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.
  
TLMDDBSwitch
 
[+] ValueChecked/ValueUnChecked properties added.<br>
 
  
TLMDFaceController
+
===  I use SE or registered package, but still trial messages appear in my application outside IDE. ===
[-] AVs at designtime in certain situations fixed.<br>
+
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.
  
TLMDMaskEdit
 
[-] Problem with "-" characters in number masks fixed.<br>
 
[-] BTS #372 (extra zeroes when deleting decimal separator in FloatFixed and FloatNumber modes).<br>
 
[-] moving current pos while pressing "-" in meCurrency mode fixed<br>
 
[-] inserting first char instead of overwriting in meCurrency mode fixed<br>
 
[-] stopping at decimalsep while deleting fixed<br>
 
[-] extra zeroes while overwriting decimalsep fixed<br>
 
[-] fractional part deletion when single digit before decimalsep is deleted fixed.<br>
 
[*] Several changes in Currency mode.<br>
 
  
TLMDMouseFencer
+
===  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. ===
[*] Minor change as suggested in BTS #375-<br>
+
The Options property of TLMDForm is used as example.
  
TLMDStaticText
+
1. Check set of properties as follows:
[*] BTS #374 (Visible property published). <br>
 
  
 +
    if (foAutoCenter in MyLMDForm.Options) then DoWhatEver;
  
==== Release 7.04.00 (27-Feb-2006) ====
+
This line of code tests whether foAutoCenter flag is currently set.
General
 
[+] LMDSIWindowsXPServer, LMDSIWindowsVista, LMDSIWindowsXPTabletEdition, LMDSIWindowXPMediaCenterEdition variables in LMDSysIn.pas added<br>
 
  
TLMDAlarmComponent
+
2. Enable or disable a specific flag as follows:
[*] Items Date and Time made public <br>
 
[+] New AddItem, RemoveItem and ClearItems methods introduced. These methods are now the recommended way to add/remove alarmitems at runtime.<br>
 
  
TLMDBrowseDlg
+
    MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];
[+] New Options: doNewGUI, doNewGUINoNewFolderBtn <br>
 
[+] New system folders added<br>
 
  
TLMDButtonBar
+
or
[-] BTS #358 (Visibility of LMDButtonBar.Sections) fixed <br>
 
  
TLMDCustomRadioGroup and descendants
+
    MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];
[-] Fixed focus setting when ItemIndex changes <br>
 
  
TLMDForm
 
[-] BTS #365 (LMDForm OnNoRestoreData issue) fixed<br>
 
 
TLMDHTMLLabel
 
[+] LineGap property added<br>
 
 
 
==== Release 7.03.10 (16-Feb-2006) ====
 
This release was made available for LMD-Tools SE user only.
 
 
[-] BTS #363 (TLMDLEDLabel issue) fixed<br>
 
[-] Broken Caption / Hint editor in VCL.NET releases fixed.<br>
 
 
   
 
   
 +
===  You receive during compilation an <i>"Unknown identifier..."</i> for a procedure/function or type. You are sure 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:
  
==== Release 7.03.02 (17-Jan-2006) ====
 
This release is especially intented for C++ user of BDS 2006.
 
 
LMDSysIn.pas
 
[-] Linkage problem in BDS2006 for C++ personality fixed<br>
 
 
TLMDFormDisplay, TLMDFormTabControl, TLMDWave, TLMDWaveComp
 
[*] The [..]Ext methods (AddFormExt, PlaySoundExt etc.) are available again for C++ user in BDS 2006<br>
 
 
TLMDNoteBook
 
[+] AutoFocus property added (FRT #46)<br>
 
 
TLMDBaseGraphicButton and descendants
 
[*] Minor change in SetNumGlyphs behaviour (only of importance when you create buttons at runtime)<br>
 
 
 
==== Release 7.03.01 (21-Nov-2005) ====
 
LMD-Tools SE assembly (VCL.NET and SE version only)
 
The manifest file referenced by LMD.Vcl.LMDXPRes unit is no longer linked automatically (problem appeared with VCL.NET version only).
 
 
TLMDFontSizeComboBox
 
[-] Correct notification method added. Previously removing connected controls caused AV at designtime.<br>
 
 
 
==== Release 7.03.00 (14-Nov-2005) ====
 
TLMDAssist
 
[+] Transparent and CtlXP support added<br>
 
 
TLMDCustomButton
 
[*] Focus is no longer drawn when button is disabled<br>
 
 
TLMDCustomMaskEdit
 
[-] LMDCustomMaskEdit: rounding bug in meFloatFixed fixed<br>
 
[+] 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).<br>
 
[+] ForceMaskValidation method added. Use this method to case mask validation via code.<br>
 
 
TLMDCustomMemo
 
[-] BTS# 324 fixed (Jumping by Ctrl+End caused invalid Row value).<br>
 
[-] BTS# 327 fixed (hang up when scrolling up one line in MakeCursorVisible)<br>
 
 
TLMDImagelist(Item)
 
[-] 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.<br>
 
 
TLMDScrollBar(Object)
 
[+] 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.<br>
 
 
TextPack components
 
For several TextPack components additional properties from ancestor controls were published.
 
 
 
==== Release 7.02.00 (25-Aug-2005) ====
 
General Change: XP Theme support
 
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.
 
 
TLMDAboutDlg
 
[*] The two system info labels were named on user request with lblinfo1 and lblinfo2 (for simpler changing in OnCustomize event). Example:<br>
 
procedure MyForm.AboutCustomize (Sender:TObject);
 
begin
 
  with TForm (Sender) do
 
    TLMDSimpleLabel (FindComponent ('lblinfo1')).Caption:='MyInfoLine1'#13#10'MyInfoLine2';
 
  [..]
 
 
TLMDAlarmComponent
 
[-] problem described in newsgroup for unlimited generating of events for expired alarm dates fixed<br>
 
[-] Deletion of alarm dates problem fixed<br>
 
 
TLMDBaseLabel and descendants (TLMDSimpleLabel, TLMDLabel etc.)
 
[-] Visible problem with Twinkle/Transparent enabled at same time fixed<br>
 
[*] Twinkle effect is no longer shown at design time <br>
 
 
TLMDBaseEdit
 
[-] BTS# 262 (invisible first character issue) fixed<br>
 
 
TLMDBaseGraphicButton
 
[-] BTS# 217 (LMDSpeedButton glyph changing issue) fixed<br>
 
 
TLMDCustomMemo (and descendants)
 
[-] BTS# 197, auto hide/show for scrollbars=skAuto fixed<br>
 
 
TLMDCalendarEdit
 
[-] OnDlgClose problem fixed<br>
 
 
TLMDCustomControl and descendants; TLMDControl and descendants; TLMDCustomButton; TLMDCaptionButtons
 
[-] BTS# 245 (xp theme issue) fixed<br>
 
[*] Structural changes concerning XP themes handling<br>
 
 
TLMDCustomDBEdit and -Memo (and descendants)
 
[-] Usage of CTRL-C, CTRL-A does no longer set control into edit mode<br>
 
 
TLMDCustomEdit (and descendants)
 
[-] BTS# 310 (DisplayText issue) fixed<br>
 
 
TLMDCustomMaskEdit (and descendants)
 
[-] BTS# 306 (inserting garbage in certain cases) fixed<br>
 
 
TLMDDBMaskedEdit
 
[-] TBCDField issue fixed<br>
 
 
TLMDFileCtrl
 
[+] Property "FileStampFormat" added, allows user-defined formatting of the returned timestamp-string. For possible format strings please review help for FormatDateTime method.<br>
 
 
TLMDFileGrep
 
[-] Filesizes >2GB are now supported. FileSize properties are now of Int64 type.<br>
 
 
TLMDFormDisplay
 
[-] 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<br>
 
 
TLMDShapeControl
 
[-] Incorrect painting of LMDShapeDraw when mode=scmTeethFill fixed <br>
 
 
TLMDTipDlg
 
[+] ShowRandom property: If enabled, tips are shown in random order. Otherwise they are shown in same sequence as in Tips stringlist.<br>
 
[*] Empty lines in Tips list are always skipped now<br>
 
 
 
==== Release 7.01.10 (27-May-2005) ====
 
All (focusable) button controls
 
[*] LMDDrawBtnFace changed. On user request buttons use font settings for font color when button is focused (previously font color was always black)<br>
 
 
TLMDCalendar
 
[-] OnMonthChange problem fixed (BTS #286)<br>
 
TLMDCustomMemo
 
[-] Bug in GetLineParams fixed (caused omission of first character when specific lines were accessed)<br>
 
 
TLMDCheckBox, TLMDRadioButton and other glyph/text controls
 
[-] Calculation in LMDDrawTextAndGlpyhExt changed, was required for Glyph with multiline text display (text was cut at right border).<br>
 
 
TLMDShape- and MessageHint
 
[-] Position of hintwindow fixed when displayed on other than primary monitor in multiple monitor systems <br>
 
 
 
==== Release 7.01  (20-Apr-2005) ====
 
VCL.NET release of core controls introduced.
 
 
TLMDCalendar
 
[-]Setting Style property of Header causes immediate repaint now. Previously a Refresh call was required to let changes take any effect.<br>
 
 
TLMDCaptionPanel
 
[+] Support of OnMouse* events added.<br>
 
[+] ClientPanel property (public, read-only) added<br>
 
 
TLMDGlyphLabel
 
[-] Wordwrap problem in multiline mode when image is shown fixed.<br>
 
 
TLMDImage- and BitmapList
 
[+] New PixelFormat: spf16bit<br>
 
 
TLMDListBox
 
[-] Header sections are now shown when ListBox is placed on TFrame<br>
 
[-] 25 can now be set for HeaderHeight property<br>
 
 
TLMDMemo
 
[-] CRLF (#13#10) splitting while selecting text with mouse fixed.<br>
 
 
TLMDMessageDlg
 
[-] BTS #258: Correct alignment when mbNoToAll and/or mbYesToAll are displayed<br>
 
[-] 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)<br>
 
 
TLMDSplitterPanel
 
[-] BTS #256: Exception at designtime when moving splitter (Delphi 8 and 2005 only)<br>
 
 
TLMDStatusBar
 
[-] Drawing problem with last panel in disabled SizeGrip mode fixed.<br>
 
 
TLMDTrackBar
 
[-] Gradient settings with ColorLists work now correctly inside TFrame<br>
 
 
 
==== Release 7.00.61 (14-Dec-2004, Minor Update - mainly for integration of ScriptPack/FxPack into CE packages) ====
 
General Change: Label controls
 
Until this release code for AutoSize property was processed even if Align<>alNone. This was changed. Refers to BTS #240
 
 
TLMD3DEffectButton
 
[-] Transparent problem (which caused AV) on forms with TLMDBack/FormFill background fixed<br>
 
 
TLMDCalendar
 
[+] DateInList function for testing whether a specific date is in SpecialDates collection was moved from protected to public section.Declaration is:<br>
 
function DateInList (Date : TDateTime; modeSet : TLMDVisibleModes) : TPoint;
 
[-] Date conversion with suffixes improved<br>
 
 
TLMDCurrencySettings
 
[*] LoadDefaults was changed to avoid exceptions for several exotic/wrong settings<br>
 
 
TLMDDBRadioGroup
 
[-] Fix for non-shown values when table was opened in FormCreate, BTS #242<br>
 
 
TLMDMessageDlg
 
[-] For several methods the previously fixed problem with % characters still existed (Execute method et al. worked fine, though). This was fixed.<br>
 
[*] Positioning in multiple monitor environments slightly changed (valid also for other dialog controls), BTS #247<br>
 
 
TLMDPopupMenu
 
[+] OnAfterPopup event<br>
 
  
TLMDRadioGroup
+
Mark the affected identifier in the code editor
[-] Shift-Tab handling was fixed<br>
+
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.
 +
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.
 +
Recompile your project again.
  
TLMDTextEditDlg
 
[+] 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.<br>
 
[+] CustomButton property OnCustomClick event (in connection with teBottomPanel option)<br>
 
[+] 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.<br>
 
[+] 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.<br>
 
  
TLMDTextPack controls
+
===  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. ===
[*] Many minor fixes and improvements, e.g. change of ParserClass now causes update at designtime<br>
+
'''Example'''
[-] TLMDTextRadioGroup display problem fixed<br>
+
You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.
  
 +
    LMDDBNImage1.Style:=sbKeepAspRatio;
  
==== Release 7.00.60a (24-Sep-2004) ====
 
TLMDCheckGroup
 
[-] Retrieving Value property fixed<br>
 
  
LMDUtils.pas
+
You receive "Incompatible Types error ->TLMDBitmapStyle and TLMDOldBitmapStyle.
[*] LMDDrawBtnFace method slightly changed. Focus/Default frame is now drawn with clWindowsFrame color.<br>
+
Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above:
 +
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.
  
 +
    LMDDBNImage1.Style:=lmdgraph.sbNone;
  
==== Release 7.00.60 (17-Sep-2004) ====
+
=== How to use TLMDStringStringList component correctly? How to add / remove items at runtime? ===
TLMDButtonBar
+
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).
[-] Drawing of small items when SmallGlyph is assigned fixed.<br>
 
[*] Additional minor changes in control and component editor<br>
 
  
TLMDButtonPanel
+
As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:
[+] AllowAllUp property for Buttons items added<br>
 
  
TLMDCheckGroup
+
    myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--> declare as Integer).
[*] Improved TabStop behaviour<br>
 
  
TLMDCustomContainer (and derived controls)
+
The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.
[*] Assign method was changed, so that component editors of main controls work now in derived controls <br>
 
  
TLMDDBRadioGroup
+
Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:
[-] Problem with previously open tables fixed.<br>
 
  
TLMDListBox
+
    LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write
Control is now able to display text even if no sections are defined at all.
+
    LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;
  
TLMDMessageDlg
+
Because TLMDStringListItems array is default array you could also write
[+] CtlXP property<br>
 
[+] OnCustomize event (Sender parameter contains reference to TForm object which displays message dialog)<br>
 
[+] Escape key now already closes dialog and returns mrCancel result<br>
 
[+] ButtonsStyle replaces ButtonStyle property and provides all new styles from TLMDButton or TLMDSpeedButton<br>
 
[+] ShowAgainOffsetX/FShowAgainOffsetY properties (allow simple left/top positioning of ShowAgainBox)<br>
 
[*] Default positioning was changed in various ways<br>
 
[*] Yes to All/No to All buttons are now supported<br>
 
[-] If no buttons for display are specified -> ShowAgainBox will not be displayed as well (in previous releases this combination caused AV).<br>
 
  
TLMDRadioButton
+
    LMDStringList1[myIndex].Items:=myExternalVCLStringList;
[-] Minor bug fixed when Checked is disabled via code while control is focused<br>
 
  
TLMDSendKeys
+
Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:
[+] {SPACE} key identifier supported<br>
 
  
TLMDStatusBar
+
    MyLabel.Caption:=LMDStringList1[myIndex].Items[5];
[+] CtlXP property (for drawing of sizegrip) added<br>
 
  
TLMDSysMenu
+
This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:
[-] Problem with ForceUpdate method in Menu mode fixed<br>
 
  
TLMDTreeComboBox
+
    LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'
[*] Height of horizontal scrollbar is now considered in automatic DropDownHeight calculations<br>
+
    LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'
 
  
==== Release 7.00.59 (30-June-2004) ====
 
TLMDBaseEdit and descendants
 
[*] CharCase properties use now AnsiUpperCase funtions instead of UpperCase<br>
 
  
TLMDCaptionButtons
+
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
[*] Several changes in connection with DropDownMenus<br>
 
  
TLMDCheckListComboBox
+
    LMDStringList1.Delete(myIndex).
[*] AutoHeight feature for different font heights now enabled by default.<br>
 
  
TLMDCustomComboExt (and all descendants)
+
To insert a new item at a specific position (here at index 2) use e.g
[+] New AllowDropDown event. Use this event to prevent drop down box temporarily.<br>
 
  
TLMDCustomMaskEdit
+
    myIndex:=LMDStringList1.Insert(2, nil);
[-] 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 "suffix"<br>
 
  
TLMDHeaderListComboBox
+
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.
[-] Frame around Checklistbox now longer hidden when items are deleted<br>
 
  
TLMDSplitterPanel
 
[+] AutoResizePanes property<br>
 
  
TLMDTextPrinter
+
===  TLMDFormDisplay: How to access specific controls on forms? ===
[-] The printable rect was not reduced by the space a border needs. So the letters got sometimes printed on the border.<br>
+
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:
 
  
==== Release 7.00.58 (19-May-2004) ====
+
    TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';
[ParsePack]
 
Several HTML output issues fixed
 
  
TLMDCustomControl and descendants
+
Reason
[-] Disabled Transparent property works now correctly when placed on LMD Container controls.<br>
+
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).  
 
   
 
   
  
==== Release 7.00.57 (11-May-2004) ====
+
== CBuilder Notes ==
TLMDButtonPanel
 
[-] AddButton/InsertButton AV fixed<br>
 
 
 
TLMDCaptionPanel
 
[+] AutoBringToFront property. Disable this property to switch off BringToFront feature when mouse is moved into caption area.<br>
 
 
 
TLMDCustomBevelPanel and descendants
 
[+] 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.<br>
 
 
 
TLMDEdit
 
[-]  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<br>
 
 
 
TLMDEditAutoComplete
 
[-] Problem with empty strings in Popup mode fixed<br>
 
 
 
TLMDListBox
 
[-] Problem with header sizing in Delphi 7 in VirtualWith mode fixed<br>
 
 
 
TLMDNoteBook
 
[-] SaveResources mode was always on, this was fixed<br>
 
 
 
 
 
==== Release 7.00.23 SourcePack (16-Feb-2004) ====
 
[*] TLMDBaseMeter and descendants: UserValues which are out of bounds are no longer ingored but resetted to MinValue/MaxValue<br>
 
 
 
[Edit/Memos]
 
[+] Options property added. Current flags: eoNarrowHeight (one extra pixel for border is left out) and eoSuppressDefaultMenu (default context menu is not displayed).<br>
 
[-] Performance drop when using WinXP Themes solved<br>
 
[-] Cursor problem when Memo was ActiveControl on a form fixed<br>
 
 
 
 
 
==== Release 7.00.23 (19-Jan-2004) ====
 
[*] DBSpeedButtons provides now ButtonStyle property <br>
 
[*] OnContextPopup is generated in BaseEdit and descendants<br>
 
[-] CaptionButtons problem with Arrow buttons fixed<br>
 
[-] AV when setting Active property in TrayIcon component fixed.<br>
 
[-] Fix for TLMDScrollBar and TLMDMemo which caused heavy CPU usage. <br>
 
[-] TLMDCustomPanelFill update at designtime fixed<br>
 
 
 
 
 
=== LMD BarPack 1.X ===
 
 
 
==== Release 1.03.00 (07-Mar-2007) ====
 
[*] Several performance improvements, Delphi 2007 compatibility.<br>
 
 
 
==== Release 1.02.00 (25-Feb-2006) ====
 
TLMDBarHTMLLabel
 
[+] LineGap property<br>
 
 
 
TLMDExplorerBarSections
 
[+] Margin property added (specifies border in sections)<br>
 
[+] InfoLineGap property added. Allow specification of line gaps in Information label.<br>
 
 
 
==== Release 1.00.60 (30-May-2005) ====
 
[+] OnBeforeExpand/OnBeforeCollapse for ExplorerBarSections<br>
 
 
 
==== Release 1.00.54 (08-Dec-2004) ====
 
[-] AV during application exit when Linked controls are used in ExploreBar Sections (BTS #241)<br>
 
 
 
==== Release 1.00.53 (10-Sep-2004) ====
 
[-] AVs fixed during running animations<br>
 
[-] Glyphs assigned to control's Glyph properties are now used correctly<br>
 
 
 
==== Release 1.00.52 (30-June-2004) ====
 
[-] TLMDExplorerBar: GetSectionByPoint bug fixed (this bug had consequences for invisible sections)<br>
 
 
 
==== Release 1.00.51 (21-May-2004) ====
 
[-] Repaint problem in TLMDExplorerBar fixed<br>
 
 
 
==== Release 1.00.50 (21-Apr-2004) ====
 
[-] Resource leak on Win9X systems (caused by TransparentBlt API call in MSImg32.DLL) fixed<br>
 
[-] Small resource Leak in TLMDExplorerBar fixed<br>
 
[*] OnDragOver/OnDragDrop is now called in TLMDSectionBar for external controls  <br>
 
 
 
==== Release 1.00.01 (28-July-2003) ====
 
[-] 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.<br>
 
 
 
 
 
 
 
=== LMD DesignPack 3.X ===
 
 
 
==== Release 3.00.00 (16-Aug-2006) ====
 
Initial Release.
 
 
 
==== Release 2.22.10 (10-Apr-2006) ====
 
[-] TLMDDesignPanel: "Autoscroll" property not persistent fixed (BDS2006)<br>
 
 
 
==== Release 2.22.00 (31-Oct-2005) ====
 
[-] Workaround for custom memory manager (Fast MM) problem added<br>
 
 
 
==== Release 2.21.01 (21-Apr-2005) ====
 
[-] Freeze problem with TLMDDesignManager in Delphi 2005 IDE fixed<br>
 
 
 
==== Release 2.21.00 (10-Sep-2004) ====
 
[+] ReadOnly property for diagram controls<br>
 
 
 
==== Release 2.20.00 (23-Jun-2004) ====
 
Feature Update! Check DesignPack ReadMe for more info.
 
 
 
==== Release 2.10.00 (06-Jan-2004) ====
 
Feature Update! (e.g. new visual styles and support of property categories) Check DesignPack ReadMe for more info.
 
 
 
==== Release 2.00.20 (09-Aug-2003) ====
 
[+] TLMDDBDiagram: New event OnItemClick. Also LMDDBDiagram demo was extended.<br>
 
 
 
 
 
 
 
 
=== LMD FxPack 1.X ===
 
 
 
Initial Release (08-Dec-2004)
 
No updates available yet.
 
 
 
 
 
 
 
=== LMD RichPack 3.X ===
 
 
 
==== Release 3.06.60 (18-Aug-2006) ====
 
[-] TLMDRichEdit: SetRulerPosition, fix for possible AV and Overflow errors when RichEdit.Align = alClient and Ruler was visible at the same time.<br>
 
 
 
==== Release 3.06.50 (10-Apr-2006) ====
 
[*] 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). <br>
 
 
 
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).
 
 
 
==== Release 3.06.10 (25-Feb-2006) ====
 
[+] Numbering actions: FirstIndent/LeftIndent properties added<br>
 
 
 
==== Release 3.06.00 (15-Nov-2005) ====
 
[TLMDRichScrollBox]
 
[-] BTS #317 fixed (scrollbar problem with different dpi settings)<br>
 
 
 
==== Release 3.05.00 (25-August-2005) ====
 
[TLMDRichLabel and descendants]
 
[*] Cursor property functionality enabled in RichLabel controls as used in VCL<br>
 
 
 
[TLMDRichEdit and descendants]
 
[+] ShowDefaultPopup property: If enabled, no default menu is shown.<br>
 
[+] 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.<br>
 
[-] WMRButtonUp handler changed to workaround bug in certain RichEdit DLLs (Popup menu displayed twice)<br>
 
 
 
[TLMDRichEditActions]
 
[*] Minor changes. Save actions now handle Modified property of connected RichEdit control better.<br>
 
 
 
==== Release 3.04.61 (12-May-2005) ====
 
Fix in label controls where after special characters links were no longer recognized.
 
 
 
==== Release 3.04.60 (15-Mar-2005) ====
 
[-] Various fixes<br>
 
 
 
==== Release 3.04.51 (24-Sep-2004) ====
 
[-] AV with TLMDRichEdit fixed<br>
 
 
 
==== Release 3.04.50 (14-Sep-2004) ====
 
[-] TLMDRichScrollBox: Scrollbar error in Win9x fixed<br>
 
[-] Several other minor bugfixes and changes for VCL.NET compatibility<br>
 
 
 
==== Release 3.04.11 (30-Jun-2004) ====
 
[-] Several minor bugfixes<br>
 
 
 
==== Release 3.04.10 (30-Mar-2004) ====
 
[*] TLMDRichLabel link handling changed<br>
 
 
 
==== Release 3.04.00 (29-Jan-2004) ====
 
[TLMDRichEdit]
 
[*] RTFText property reintroduced<br>
 
[*] Left/First Indent logic of a paragraph was changed. New meaning: LeftIndent -- paragraph relative to the left margin, FirstIndent -- first line of the paragraph<br>
 
 
 
[TLMDCustomRichLabel and descendants]
 
[-] Several problems with bevel painting fixed<br>
 
 
 
[Storage Controls, Collection Editor]
 
[+] You can open editor for an item via double click instead via object inspector now<br>
 
 
 
==== Release 3.03.00 (08-Jan-2004) ====
 
[TLMDRichEdit]
 
[-] several position and TLMDRuler issues fixed<br>
 
[+] Method: procedure SetSelRange(SelStart, SelLength: integer); <br>
 
[+] Event: OnLinkMouseMove -- e.g., for updating statusbar (like PropertyEditor from pLMDRTFHyperTextEditor.pas) or as hint (like in pHyperLink.dpr project).<br>
 
OnLinkMouseMove is generated when entering/exiting mouse cursor into/out link area.
 
 
 
[TLMDCustomRichLabel]
 
[-] Resizing problems fixed<br>
 
 
 
[HyperText]
 
Behaviour of links was  improved (including usability of corresponding forms). Check updated HyperLink demo for more info
 
 
 
 
 
==== Release 3.02.00 (09-Dec-2003) ====
 
[TLMDRichEdit]
 
[-] Ability to past raw text improved. <br>
 
[-] Fixed several bugs with non-English charset.<br>
 
[+] New method: procedure PastePlainText; (Paste raw text from ClipBoard).<br>
 
[+] procedure InsertGraphic(aGraphic: TGraphic);<br>
 
 
 
[TLMDCustomRichLabel]
 
[-] improved display in transparent & smoothing mode<br>
 
[-] fixed bug with change of DeltaX and DeltaY values<br>
 
 
 
[TLMDRichScrollBox]
 
[-] Division by Zero error fixed which happened eventually when loading different text snippets<br>
 
[-] Scrollbar initialization when loading different files corrected<br>
 
 
 
[TLMDRichSyntaxEdit]
 
[*] processing non-standard keywords, work scheme and work speed improved<br>
 
 
 
[Hint]
 
You can minimize flicker in transparency mode: Set for Parent controls of TLMDCustomRichLabel and descendants DoubleBuffered := True;
 
 
 
==== Release 3.01.00 (23-Nov-2003) ====
 
[-] bug fixed: put link text to Clipboard<br>
 
[-] bug fixed: clear selection with links<br>
 
[-] TLMDRichScrollBox: flickering when using scrollbars reduced<br>
 
[-] fixed several bugs with Indents.<br>
 
 
 
 
 
 
 
=== LMD ShellPack 3.X ===
 
 
 
==== Release 3.04.01 (19-Jan-2007) ====
 
[-] Double firing of OnChange event (when LMDShellFolder.ChDir is called) fixed.<br>
 
 
 
==== Release 3.04.00 (12-Nov-2006) ====
 
[+] TLMDShellFindDialog: OldStyle property added. Use this property to display the old style find dialog.<br>
 
[+] TLMDShellList: New SortColumn method for changing sorted column settings in vsReport style at runtime. Following call variations are possible:<br>
 
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn); -->  sort after column of type aColumn, e.g. sh.SortColumn(cdName);
 
  procedure SortColumn(aColumn:TLMDShellItemDetailsColumn;aDirection:TLMDShellSortDirection); --> as before but with sort order aDirection.
 
  procedure SortColumn(aIndex:Integer); --> sort after column with index aIndex, e.g. sh.SortColumn(1);
 
  procedure SortColumn(aIndex:Integer; aDirection:TLMDShellSortDirection); --> as before but with sort order aDirection.
 
[-] TLMDShellList: Problem with frames fixed.<br>
 
 
 
 
 
==== Release 3.03.00 (10-Apr-2006) ====
 
[-] TLMDShellFolder: Using ChDir method with natural folder names (like 'C:\') does now correctly update history.<br>
 
[-] TLMDShellList: Calling of Rename from Context menu fixed. In Delphi 5 update of shell list after rename operation corrected.<br>
 
[-] TLMDShellList: Executing exe-/linked files with extended security settings fixed.<br>
 
 
 
==== Release 3.02.50 (25-Feb-2006) ====
 
[+] TLMDShellSysBrowseDlg, new options: boNewGUI, boNewGUINoNewFolderBtn<br>
 
 
 
==== Release 3.01.00 (17-Sep-2004) ====
 
[-] Several minor fixes, VCL.NET compatibility<br>
 
 
 
 
 
=== LMD ScriptPack 3.X ===
 
 
 
==== Release 3.00.00 (16-Aug-2006) ====
 
Initial Release.
 
 
 
 
 
 
 
=== LMD SearchPack 2.X ===
 
 
 
==== Release 2.04.10 (18-Aug-2006) ====
 
[-] TLMDSearchFileGrep: AV on locked files fixed <br>
 
 
 
==== Release 2.03.50 (14-Sep-2004) ====
 
[-] Several minor fixes<br>
 
[-] Several changes for improved VCL.NET compatibility<br>
 
 
 
==== Release 2.03.10 (04-Jul-2004) ====
 
[TLMDSearchFileGrep] (suggested by ConDev)
 
[+] property TemplateValid : Boolean<br>
 
[+] property OnTemplateInvalid : TNotifyEvent<br>
 
If upon assignment of "SearchString" the template parsing fails, the "TemplateValid" property is set accordingly.
 
In addition the "OnTemplateInvalid" event is used to suppress former message (or let the user decide what error message pops up)
 
 
 
==== Release 2.03 (20-Oct-2003) ====
 
[+] TLMDSearchFileGrep: OnErrorOpenFile event. This event is generated when a file matches filemask, but<br>
 
contents of file could not be checked.
 
 
 
==== Release 2.02 (30-Aug-2003) ====
 
[-] Fixed: Skip character after found wildcard<br>
 
[-] Fixed: Result list fixed<br>
 
 
 
==== Release 2.01 (19-May-2003) ====
 
[-] Problem with search expression starting at first position fixed<br>
 
[-] MatchCase bug fixed<br>
 
[+] New properties: AnySequenceCharacter and AnySingleCharacter - Use them to specify custom wildcard characters.<br>
 
 
 
 
 
 
 
=== LMD SysPack 2.X ===
 
 
 
==== Release 2.01.50 (25-Feb-2006) ====
 
[-] TLMDSysPrinter info display corrected <br>
 
[-] Fixed: When calling Refresh at runtime for info object, items in Collection are doubled.<br>
 
[+] pfWinVista added for TLMDSysPlatform type<br>
 
 
 
==== Release 2.01.00 (17-Jan-2006) ====
 
[-] BTS# 284 fixed <br>
 
 
 
==== Release 2.00.52 (24-Sep-2004) ====
 
[-] Fix for AV in SysMemoryObject<br>
 
[-] Problem in TLMDSysTimeZone fixed (BTS #146)<br>
 
 
 
==== Release 2.00.51 (14-Sep-2004) ====
 
[*] Changes in memory detection routines<br>
 
[*] Several changes for improved VCL.NET compatibility<br>
 
 
 
==== Release 2.00.50 (20-Apr-2004) ====
 
[TLMDSysInfoListView ]
 
[+] ShowDescriptionColumn property<br>
 
[+] Columns property made public<br>
 
 
 
[TLMDSysNetworkEnumerator]
 
[+] OnEnumItem event<br>
 
[+] CancelThread method<br>
 
 
 
 
 
=== LMD StoragePack 1.X ===
 
 
 
==== Release 1.09.20 (19-Jan-2007) ====
 
[-] Small memory leaks in TLMDStorXML.Parse fixed<br>
 
 
 
==== Release 1.09.10 (10-Apr-2006) ====
 
[-] TLMDStorIniVault: BTS #373 (RenameSections did not work correctly).<br>
 
 
 
==== Release 1.08.30 (25-July-2005) ====
 
[TLMDStorXMLVault]
 
[+] MainTag property. Besides header and footer you may now specify the main tag which is used to store tag (was previously fixed to <LMDStorageData> and </LMDStorageData>). Use with care for existing applications!<br>
 
 
==== Release 1.08.10 (27-May-2005) ====
 
[TLMDStorINIVault]
 
[-] Bug with corrupting INI file after list properties fixed. <br>
 
 
 
==== Release 1.08.00 (17-Sep-2004) ====
 
[TLMDStorPropertiesStorage]
 
[*] property TLMDStorPropertiesStorage.SkipNotFoundComponents moved to the published section.<br>
 
If SkipNotFoundComponents = True then exception not generated, but OnNotFound event occur in any case.
 
[+] TLMDStorCustomPropertiesStorage.OnNotFound event added:  OnNotFound(Sender: TObject; const CompName: string; var RaiseException: Boolean);<br>
 
[+] TLMDOSReader.OnNotFound event added<br>
 
 
 
==== Release 1.07.00 (10-July-2004) ====
 
[+] OnCustomRootRead & OnCustomRootWrite events for Vault controls. Allow specification of custom root control.<br>
 
[*] TLMDStorPropertiesStorage: Frames are supported now.<br>
 
[-] Several bugfixes in Vault controls.<br>
 
[-] LMDStorage-Base64 fixed<br>
 
 
 
==== Release 1.06.50 (30-Mar-2004) ====
 
[-] "Data not found" bug when no active section was set fixed<br>
 
 
 
==== Release 1.06.40 (29-Jan-2004) ====
 
[-] XML-Parser: Problem with <CR> in properties fixed.<br>
 
[*] Chars [#0..#31,'%','"'] stores now in vault controls as %00..%1F,%25...<br>
 
 
 
==== Release 1.06.30 (31-Dec-2003) ====
 
[-] Problem with doubled attributes in XML files solved<br>
 
 
 
==== Release 1.06.20 (04-Nov-2003) ====
 
[-] Fixes in Visual designer, e.g.compatbility with TChart control<br>
 
 
 
==== Release 1.06 (20-Oct-2003) ====
 
[+] New property in TLMDStorCustomPropertiesStorage: SkipNotFoundComponents<br>
 
[-] Stack overflow in certain conditions in visual design editor fixed.<br>
 
  
==== Release 1.05 (05-Sep-2003) ====
+
=== CodeGuard Issues ===
[LMDStorBase.pas TLMDAbstractStorageVault]
+
Using CodeGuard you might encounter at designtime "Bitmap invalid" or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option, 
[*] Fixed procedure SetFileName - now file name isn't stripped during loading<br>
+
please disable tracking of the "memory block" resource, on the Resource Options Tab of CodeGuard.
[+] Add new property "AutoUpdate" 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).<br>
 
  
[LMDStorINIVault.pas TLMDStorINIVault]
 
[+] New property "AutoUpdate" of base storage class <br>
 
  
[LMDStorXMLVault.pas TLMDStorINIVault]
+
===  LMD RichPack  ===
[+] New property "AutoUpdate" of base storage class <br>
+
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:
 +
Change line...
  
==== Release 1.04 (25-July-2003) ====
+
    void __fastcall GetAttributes(CHARFORMAT2A &Format);     
[-] Writer objects were completely rewritten to store default properties and empty dynamic objects.<br>
 
  
==== Release 1.03 (02-July-2003) ====
+
..to...
[-] Minor Problems with dynamic objects were fixed<br>
 
  
==== Release 1.02 (01-July-2003) ====
+
    void __fastcall GetAttributes(Richedit::CHARFORMAT2A &Format);
[-] Problems with XML format were fixed (quoted strings)<br>
 
  
==== Release 1.01 (19-May-2003) ====
 
[-] Bug in visual design editor which caused an infinity loop was fixed<br>
 
  
 +
===  LMD ShellPack  ===
 +
Important:
 +
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):
  
 +
    #include <LMDShellBCBSupport.hpp>
  
=== LMD WebPack 3.X ===
+
If this header file is not included, an E2076 linker error will be generated.
  
==== Release 3.05.00 (10-Apr-2006) ====
 
[*] TLMDWebUpdate: Handling of internal InternetOptions settings changed.<br>
 
  
==== Release 3.04.10 (25-Feb-2006) ====
+
=== LMD TextPack  ===
[-] TLMDWebHTTPScan problem with last character truncated from directories fixed<br>
+
Important:
 +
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.
  
==== Release 3.03.01 (21-Apr-2005) ====
 
[*] Minor changes in TLMDDownload class<br>
 
  
==== Release 3.03.00 (15-Sep-2004) ====
+
=== LMD WebPack  ===
[*] Many changes for VCL.NET compatbility<br>
+
Important:
 +
[1] To make an application compileable using TLMDWebUpdate  component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include <vcl.h> line in the header file of the main unit. Check example project for demonstration.
 +
[2] If you use WinInet version of WebPack and you receive "Unresolved External" compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then).
 +
[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.  
  
==== Release 3.02.20 (30-Mar-2004) ====
 
[+] New flag moNoAddressField for TLMDMAPIOption (TLMDMapiSendMail): Keeps address field empty for better MS Exchange support<br>
 
  
==== Release 3.02.10 (28-Jan-2004) ====
+
=== TLMDHideNonVC  ===
[-] URL decode function fixed (e.g. for Scan control)<br>
+
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.
[-] Minor problem with Charset in Download Form fixed<br>
 
[-] Unnecessary calls in RAS support removed<br>
 
  
==== Release 3.02 (20-Oct-2003) ====
 
[-] Several minor bugs fixed<br>
 
  
==== Release 3.01 (15-Sep-2003) ====
+
=== TLMDFormDisplay ===
[-] News demos for Delphi updated. In source version english resource file is by default installed.<br>
+
The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.
[-] LMDHTMLObjectUnit.pas:  Memory leak during parsing fixed<br>
 
[-] TLMDWebHTTPScan: Memory leak fixed.<br>
 
[+] TLMDWebHTTPScan.Clear method added.<br>
 

Latest revision as of 11:40, 18 August 2017

Contents

General

Compatibility Components are not installed by default!

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).

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

  1. The problem happens only within IDE (does not affect the executable).
  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.

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 "LMD[..].pas not found".

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.

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.

Up to LMD-Tools Version 4:

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. When you purchased a disk version the required information can be found on a separate piece of paper called "Registration Information". If you lost your registration information please email providing your full address, serial# and dealer from whom you purchased your copy.

Up to LMD Elpack 4:

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.

From LMD-Tools Version 4/LMD ElPack 5 on:

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 "LMD-Tools") 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.

You purchased/downloaded update from protected download area, but installer reports message: 'License information not found'.

Up to LMD-Tools Version 4:

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).

From LMD-Tools Version 4 and LMD ElPack 5 on:

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. 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).

I own the free LMD-Tools Special Edition from your web site (or Delphi Companion CD). How to upgrade to a full version?

There is no direct upgrade path from SE version to a full version of LMD-Tools, so no upgrade prices are available.


IDE Notes

Corrupted/screwed Component Palette

Note: Problem seems to be solved in Delphi / CBuilder 6 and higher

Answer 1: 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). There are several ways to workaround: 1.) Try to update your graphic driver. In a few cases problem dissappeared by using latest driver versions. 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).

Answer 2: 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). Try these:

  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)
  2. Start Delphi with the -ns switch
  3. Under the [display] section of the SYSTEM.INI file add the following line: BusThrottle=1 (reboot afterwards)
  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.
  5. reduce the hardware acceleration for the card. (display->properties->settings->advances->performance) 6) play with color depth/resolution 1024x768 in 16 bit color seems the worse (particularly with Delphi 3).
  6. Get the latest DirectX drivers.
  7. After Delphi is started, change the color depth (you can change it right back) of your video card.

Also Delphi 5 can not run in Win98 under 16 color mode. You must be at least at 256 colors.

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.


Help Index files disappear after installation of LMD-Tools helpfile (you checked automatic installation in installer) / AV's in CBuilder when starting help

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:

To reset the original help index use the OpenHelp tool from the Help menu and remove LMD-Tools index files 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).


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.

Reason 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).

Solution 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).


After successful installation, errors like "Can't find entry point [..] in lmd50_d5.bpl" occur after starting Delphi/CBuilder IDE.

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.


Delphi Notes

ToolBar97 components

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.


The support request Nr. 1 for LMD-Tools 5:

[Fatal Error] UMain.pas(8): Unit lmdsysin was compiled with a different version of lmdconst.IDS_CPUSPEED Reason: You did not uninstall a previous version (e.g. Release 5.X) completely. 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.


I use SE or registered package, but still trial messages appear in my application outside IDE.

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.


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.

The Options property of TLMDForm is used as example.

1. Check set of properties as follows:

   if (foAutoCenter in MyLMDForm.Options) then DoWhatEver; 

This line of code tests whether foAutoCenter flag is currently set.

2. Enable or disable a specific flag as follows:

   MyLMDForm.Options:=MyLMDForm.Options+[foAutoCenter];

or

   MyLMDForm.Options:=MyLMDForm.Options-[foAutoCenter];


You receive during compilation an "Unknown identifier..." for a procedure/function or type. You are sure 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:


Mark the affected identifier in the code editor 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. 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. Recompile your project again.


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.

Example You want to change TLMDDBNImage Style property (also TLMDNImage, TLMDLImage etc.) at runtime, e.g.

   LMDDBNImage1.Style:=sbKeepAspRatio;


You receive "Incompatible Types error ->TLMDBitmapStyle and TLMDOldBitmapStyle. Make sure that Compiler tries to use correct type defintion. Solutions are demonstrated on example problem above: 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.

   LMDDBNImage1.Style:=lmdgraph.sbNone;

How to use TLMDStringStringList component correctly? How to add / remove items at runtime?

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).

As follows examples for working with TLMDStringList component. To add a new item to the TLMDStringList class write e.g.:

   myIndex:=LMDStringList1.Add(nil); // now you have created a new item with Index myIndex (--> declare as Integer).

The new created type is a TLMDStringListItem class, which CONTAINS a TStringList object as Items property.

Use this Items property as you would use a TStrings or TStringlist object. To assign e.g. a TStringlist object write:

   LMDStringList1.Items[myIndex].Items.Assign(myExternalVCLStringList);// or alternatively write
   LMDStringList1.Items[myIndex].Items:=myExternalVCLStringList;

Because TLMDStringListItems array is default array you could also write

   LMDStringList1[myIndex].Items:=myExternalVCLStringList;

Knowing this you should be able to access single lines or a full stringlist, one example from the helpfile:

   MyLabel.Caption:=LMDStringList1[myIndex].Items[5];

This line would assign the 6th line of your recently created stringlist to the Caption property of MyLabel. Other examples:

   LMDStringList1[myIndex].Items.Add('New String'); // Adds new string to the StringList with ID 'myindex'
   LMDStringList1[myIndex].Items.Delete(3); // Deletes string with index 3 from StringList with ID 'myindex'


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

   LMDStringList1.Delete(myIndex).

To insert a new item at a specific position (here at index 2) use e.g

   myIndex:=LMDStringList1.Insert(2, nil);

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.


TLMDFormDisplay: How to access specific controls on forms?

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:

   TMyForm(MyFormDisplay.ActiveForm).Edit1.Text:='SampleText';

Reason 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).


CBuilder Notes

CodeGuard Issues

Using CodeGuard you might encounter at designtime "Bitmap invalid" or similar strange errors (e.g. using TLMDSpeedButton controls). If switching CodeGuard off is no option, please disable tracking of the "memory block" resource, on the Resource Options Tab of CodeGuard.


LMD RichPack

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: Change line...

   void __fastcall GetAttributes(CHARFORMAT2A &Format);      

..to...

   void __fastcall GetAttributes(Richedit::CHARFORMAT2A &Format);


LMD ShellPack

Important: 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):

   #include <LMDShellBCBSupport.hpp>

If this header file is not included, an E2076 linker error will be generated.


LMD TextPack

Important: 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.


LMD WebPack

Important: [1] To make an application compileable using TLMDWebUpdate component, the #define NO_WIN32_LEAN_AND_MEAN switch must be inserted before the #include <vcl.h> line in the header file of the main unit. Check example project for demonstration. [2] If you use WinInet version of WebPack and you receive "Unresolved External" compiler errors, add wininet.lib from CBuilderDir\Lib directory to project files (wininet.lib will be statically linked then). [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.


TLMDHideNonVC

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.


TLMDFormDisplay

The AddForm method on TLMDFormDisplay was renamed to AddFormExt due to naming conflicts with CBuilder routines.