LMD VCL 2009 - What's New?

From LMD
Revision as of 08:05, 7 October 2008 by Rafael (talk | contribs)

Jump to: navigation, search

<< Back to Getting started page

[edit]

General

Support for IDEs and operating systems

  • Compatible with Delphi 2009 and C++ Builder 2009 (Tiburon)!
  • Support for Delphi/CBuilder 5+6/Delphi 8 dropped. Result was code cleanup and optimization, because much redundant legacy code could be removed.
  • Win95/ NT 3.5 OS is no longer tested. Supported OS are Win98 and WinNT4 or better. For recent Delphi releases same platforms as the IDE are supported (e.g. Delphi 2009 officially supports Win2k or better only).

Product Configuration

  • Number of LMD-Tools editions was reduced from 4 to 2 (LMD-Tools and LMD-Tools SE)
  • DesignPack and ScriptPack were exclusively moved to LMD IDE-Tools
  • Number of ElPack editions was reduced to 1 (LMD ElPack)

Installers

  • Registered LMD VCL Complete users can now choose to download a full installer including all main products (new feature) or to download main product installers (LMD-Tools, ElPack, IDE-Tools) as before.
  • On request all installers include full demo sets again. Only helpfile packages are available as separate download.

Designtime Features

  • SplashScreen/AboutBox support in Delphi IDE (Delphi 2005 and better).
  • New configuration Dialog added. Use this dialog to specify settings for all LMD Packages. In Win32 IDEs the dialog is also available via Tools Menu.

Common new features

  • Improved shared Unicode support. For existing IDEs, but also in preparation for upcoming CodeGear Delphi 2009 and C++ Builder 2009 releases with native Unicode support.
  • While in pre Delphi/C++ Builder releases Unicode support is based on WideString type, Unicode supported from Tiburon on is based on the faster reference counted UnicodeString.
  • Validator controls: Except TLMDHintErrorProvider (lmdcore package) all Validator and Error Provider controls are now included in lmdrtlx package and can be shared among LMD-Tools and LMD ElPack.
  • Complete Rework of Themes support. LMD-Tools and ElPack share now unified ThemeMode/GlobalThemeMode properties and can be controlled globally. The new theme support is fully generic. If no additional theme support is required, platform themes are used. Using ThemePack any *.MSStyles files can be used. Future LMD VCL releases will add several new custom themes which can be used throughout all packs.

New Packages

  • LMD InspectorPack - Powerful Object Inspector component and derived controls
  • LMD LogTools - Advanced logging services, for use with the AnyLogger client (when available, the local AnyLogger Client will be free for all customers who purchased a main LMD 2009 VCL product (LMD-Tools, LMD ElPack, IDE-Tools or VCL Complete).
  • LMD PluginPack - Plugin Infrastructure for your projects. Allows to extend your applications with custom modules (Win32 only)
  • LMD ThemesPack - Allows usage of MSStyles themes, but unlike previous releases this feature can be enabled/disabled dynamically. No more Theme switches and recompilation of library code, but a separate package which you can decide to use or not at runtime. E.g. creating applications which automatically uses *.MSStyles themes on non-themed platforms (like Win2k) and system themes on themed platforms (like WinXP/Vista) is now a snap.
  • LMD ScriptPack: VCL.NET support added.

Standalone Packs with major updates

  • LMD DesignPack
  • LMD ScriptPack
  • LMD SyntaxEdit
  • LMD WebPack

LMD-Tools

Shared Runtime

  • TLMDApplication
    • InitXP support method removed (became obsole, ThemeServices.ThemeEnabled can be checked instead)
    • GlobalThemeMode property added
    • ThemeUseColorProperty property (since 8.1)
  • Validator controls: Except TLMDHintErrorProvider (lmdcore package) all Validator and Error Provider controls are now included in lmdrtlx package.
  • LMDUtils.pas / LMDProcs.pas
    • LMDCheckSystemMenu, LMDCheckFormSysMenu and LMDCheckApplicationSysMenu moved to LMDSysMenu.pas
  • New ThemesPack, PluginPack and LogTools support

Main Controls

  • Massive Update of hint controls (-> drawing mechanism, e.g. using regions), functional improvements (like native hints and HTML support) and advanced HintSystem for displaying any number of hints. Besides that hint processing was unified with LMD ElPack (e.g. Unicode support)/TElHint. New features are among others:
    • Titles
    • Icon/Glyph support
    • Customizable close buttons
    • HTML Support (with images, clickable links, etc)
    • Background gradients
    • Customizable hint nose shape
    • Support of system shadows
    • Vista look.
  • N-Hint controls: A new component LMDMessageHintController was introduced. It allows to design a collection of hints and display them all at once or grouped via their group index settings
  • New InspectorPack. Powerful standalone object inspector control. The property inspector has been splitted from the Design Pack into separated LMD Inspector Pack. The TLMDSimplePropertyInspector represents anew designer independed simple property editor, which can be used for objects without designer. This lightweight control can be used, for example, to organize application Options dialogs.

LMD WebPack

LMD ElPack

  • Unified hint system with LMD-Tools.
  • New InspectorPack. Powerful standalone object inspector control. The property inspector has been splitted from the Design Pack into separated LMD Inspector Pack. The TLMDSimplePropertyInspector represents anew designer independed simple property editor, which can be used for objects without designer. This lightweight control can be used, for example, to organize application Options dialogs.
  • TElXCellComboBox - new cell control that can be inserted into a cell of TElXTree (for displaying combo boxes).
  • A lot of property editors were redesigned.
  • ElToolBar.ShowMoreMenu property-

LMD IDE-Tools & DesignPack

  • New TLMDSimplePropertyInspector control. The property inspector has been splitted from the Design Pack into separated LMD Inspector Pack. The TLMDSimplePropertyInspector represents anew designer independed simple property editor, which can be used for objects without designer. This lightweight control can be used, for example, to organize application Options dialogs. The existing TLMDPropertyInspector control in the Design Pack is now fully designer oriented.
  • New TLMDComponentBar control. BDS like component palette. Works even in Delphi7.
  • Updated TLMDComponentPalette control. Delphi 7 like drop-down list can be shown in cases when there are too many components on the page.
  • It ia now possible to design forms (TCustomForm descendants) in the TLMDDesignPanel. This allows to develop BDS like IDE user interface.
  • New designer ShowRootResizers property allows to show mouse handles to resize the root inside design panel.
  • New global components modification notifications feature allows to synchronize shown in Design Pack controls content without any links between controls. Useful e.g. if for example you move some Vcl control by the designer, the Left and Top property values will be automatically updated in the property inspector. Or: if you rename some Vcl component in property inspector, the object combo box will automatically update shown component name.
  • The global components modification notifications allow to detect when components located inside module root are modified. New TLMDModule.OnCompsModified event can be easily used to detect such modifications, instead of several old events of designer or property inspector.
  • The global components modification notifications allows to provide more correct notifications, finding correct module for the modified component. Imagine that you edit by the property inspector the TClientDataSet component from one module that refers to the TDataSource component from another module. Since the property inspector can edit linked data source component properties (by expanding DataSource property) it is important that as a result of such modification a second module will receive the notification, but not the first one.
  • All design pack controls are now closely oriented to work with designer. So, EditorWindows has been removed from all controls except the TLMDDesigner. All other controls will automatically search for the appropriate designer in cases when the editor window manager is required. There are no connection to service provider required, because it is always possible to map editing control to its module (designer).
  • User request: New TLMDModule.OnGetLoadingCompRef event added to allow to dynamically load modules in the presence of inter module component links. The Vcl allows to do this only starting from Delphi2005, so this event is not available in Delphi7.
  • New TLMDProjectManagerView control: delphi project manager like control. Links to TLMDProjectManager component and shows current project's content.
  • New TLMDDocEditorsView control: Delphi 7 like tabbed control that shows document editors. The control automatically interoperate with linked TLMDProjectManager. The document editors should be developed as a frames, and the only required code is to provide editor frame instance for opening document in the OnCreateEditor event handler.

LMD ScriptPack

  • VCL.NET support for Script
  • Please read RoadMap for planned features in LMD 2009 R2 release.

LMD SyntaxEdit

  • Drag and drop text support.
  • Delphi/Builder 2009 support.
  • Bugfixes and heavy speed enhancements.
  • Please read RoadMap for planned features in LMD 2009 R2 release.

Specific Technical Changes

Source Code Details

This section covers changes which are interesting for source code user only:

  • LMD ParsePack (lmd.parse) files and definitions moved to LMD TextPack (lmd.txt)
  • LMD TextPack DB package removed and added to default TextPack package
  • New LMD_NATIVEUNICODE switch: True for CLR and LMDCOMP12 or better.
  • Because of removed support for Delphi/CBuilder 5+6/Delphi 8, following compiler switches get invalid:
    • LMDCOMP5, LMDCOMP6, LMDCOMP8, LMDCOMP8NET, LMDCOMP9NET, LMDCOMP10NET etc.
    • Delphi5, Delphi6, Delphi8 etc.
    • CPPBUILDER, CPPBUILDER5, CPPBUILDER6. Besides that LMD_SHARED_CODE should no longer be used.
  • Designtime: LMDTOOLS_REGISTRYPATH variable is now located in LMDTypes.pas. Always use this basic reg key (+ specific key) for designtime editors.


Changes/Enhancements since initial LMD VCL 2007 release

LMD-Tools

LMD ElPack

LMD IDE-Tools

Archive