Difference between revisions of "LMD VCL 2009 - What's New?"

From LMD
Jump to: navigation, search
m
m
Line 182: Line 182:
 
==== Other improvements ====
 
==== Other improvements ====
  
''Installer''<br>Detection of BDSCOMMONDIR improved (CRS 2007 only). [*] Redesigned LMDApplication.IsPrevRunning and LMDActivatePrevInstance to work with Delphi 2007<br>''LMDSysIn Unit'' <br>[+] itTimeElapsedSinceBoot, itSysLastBootTime added to TLMDInfoType and GetSystemInfoString.<br>''TLMDGradient''<br>[*] max color count is 65535 now.<br>''LMDHTMLUnit'' <br>[+] "N px"-like param implemented in &lt;font size="+6px"&gt; tag. E.g. &lt;font size="6px"&gt; is handled to set font size to exactly 6 pixels. <br>[*] Special chars set enlarged. <br>[+] Embedded control (Checkbox and radiobuttons) support added.<br>[+] &lt;var&gt; and &lt;cite&gt; tags added.<br>
+
''Installer''<br>Detection of BDSCOMMONDIR improved (CRS 2007 only). [*] Redesigned LMDApplication.IsPrevRunning and LMDActivatePrevInstance to work with Delphi 2007<br>''LMDSysIn Unit'' <br>[+] itTimeElapsedSinceBoot, itSysLastBootTime added to TLMDInfoType and GetSystemInfoString.<br>''TLMDGradient''<br>[*] max color count is 65535 now.<br>''LMDHTMLUnit'' <br>[+] "N px"-like param implemented in &lt;font size="+6px"&gt; tag. E.g. &lt;font size="6px"&gt; is handled to set font size to exactly 6 pixels. <br>[*] Special chars set enlarged. <br>[+] Embedded control (Checkbox and radiobuttons) support added.<br>[+] &lt;var&gt; and &lt;cite&gt; tags added.<br>[+] Compatibility fixes (&lt;s&gt;,&lt;/s&amp;tg;added; background attr. added);<br>''Other general improvements''<Br>
[+] Compatibility fixes (&lt;s&gt;,&lt;/s&tg;added; background attr. added);<br>
+
[+] LogTools package added (for use with LMD AnyLogger client)<br>
''Other general improvements''<br>
+
[+] LMDUtils.pas: LMDSetForeGroundWindow - improved SetForeGroundWindow method which works correctly on Win98/2K.<br>
[+] Unicode support improved<br>
+
<br>[+] Unicode support improved<br>[+] CRS 2007.NET support
[+] CRS 2007.NET support
 
  
 
----
 
----

Revision as of 17:45, 19 October 2008

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

  • New ThemesPack, PluginPack and LogTools support
  • 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
    • LMDPtrToRect, LMDRectToPtr methods -> simplify call of functions with PRect/IntPtr parameters (for simple VCL/VCL.NET compatibility)
  • LMDTypes: -> TLMDTypeData
  • Many VCL dependent units (intfLMDBackGround.pas, intfLMDThemes.pas etc.) were moved from LMDRTL to LMDRTLX package

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 separate LMD Inspector Pack. The TLMDSimplePropertyInspector represents a new designer independend 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

  • RSS feed support added. Class - TLMDNewsReaderAdapter, Demo: demos/lmdweb/delphi/LMDWebNews_Rss
  • LMDWebAutoUpdate completely reworked and updated. TLMDUpdateAdapter - Adapter provides the LMDAutoUpdate application, LMDUpdateForm - component to visualize update process.
  • LMDUpdateBuilder - new Application to create update scripts based on XML file format
  • Windows Vista support "as Invoker" added.

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 separate LMD Inspector Pack. The TLMDSimplePropertyInspector represents a new designer independend 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 and IDE-Tools Core

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

Deprecated Files

  • LMDRTL
    • LMDXPThemeManager (obsolete, replaced by LMDThemes).
    • LMDXPStyles (obsolete)
  • LMD-Tools
    • LMDRgnShadow.pas
  • LMD ShellPack
    • LMDShCmp50 (obsolete)
    • LMDShNtfCmn (obsolete)
    • LMDSHXPRes (obsolete)
  • ScriptPack
    • pLMDSctPE.pas
  • StoragePack
    • LMDStorWndProc.pas

DevUtil / Workspaces

  • ParsePack (lmd.parse) files and definitions were moved to TextPack (lmd.txt)
  • LMD TextPack Database package removed and added to default TextPack package


Changes/Enhancements since initial LMD VCL 2007 release

LMD-Tools 9.0

Documentation

[*] Improved Helpfile for shared runtime

New Components

[+] TLMDEditControlPrintTask (PrintPack support)
[+] TLMDMessageHintController (the component for displaying several hints at once)

New properties, methods

LMD-Tools Hint controls

TLMDShapeHint
[*] Drawing routines reworked; both system shadows and custom shadows supported; HTML text with images, clickable links added; many new properties:

[+] CloseBtnType (hcbCustom, hcbToolTip, hcbToolWindow)
[+] CloseBtnStyle (TLMDUserButtonStyle, takes effect when CloseBtnType = hcbCustom)
[+] DefaultTitle
[+] DefaultIcon
[+] NoseAngleWidth
[+] NoseLength
[+] NoseWidth
[+] RoundRectWidth
[+] Options (hoShowTitle, hoShowCloseButton, hoShowIcon, hoRightAngledNose)
[+] ThemeMode (In ttmPlatform mode background is themed)
[+] ThemeGlobalMode
[+] TitleFont
[+] TitleFont3D (3D effects for title)
[+] Gradient
[+] UseGradient
[+] useSystemShadow

[*] All hint controls derived from TLMDCustomHint support ShowHint and ShowHintControl methods.
[+] New UseScreenHintFont property specifies whether Screen.HintFont setting should be used for displayed hints. If enabled, value of font property won't be stored (results in smaller DFM files).

TLMDNativeHint
[+] New properties - Enabled, MaxWidth and HideAccelChar
[*] TLMDNativeHint is now part of the LMDRTLX shared package and can be used by all packages with use (dcl)lmdrtlx packages (ElPack, ChartPack, RichPack, etc.).

TLMDHint
TLMDHint is now descendant of TLMDCustomShapeHint and supports all applicable new features.
[+] Property IsBalloon added

LMD-Tools Edit controls

TLMDBaseEdit and descendants
[+] Select all on triple mouseclick click added.
[+] LMD native Edit and ComboBox controls: LMDApplication.ThemeUseColorProperty added. After many requests we implemented now support of Color property in themed mode. If your application requires previous behaviour, set somewhere in your code LMDApplication.ThemeUseColorProperty to false (and like before Color property is ignored in themed mode).
TLMDCustomMaskEdit
[+] UnMaskedText property added (allows to read clear text and write text with automatic format according to the current mask) [+] New property ProcessBlankChar has been added. If it is true then user can type in BlankChar and OnUserRule is triggered, otherwise user cannot type in BlankChar directly and OnUserRule is not triggered. TLMDBaseEdit, Search and Replace functionality:
[+] FoundAtPos method for getting first symbol of found string when IsUpdating=true;

Other controls

TLMDAssist
[+] New Options flag - aoSuppressLoadEvent
Specifies whether OnBeforePage event should be generated when assist control is initially shown /loaded from DFM. Flag is set by default, if OnBeforePage event should be generated, disable this flag.
[+] Changes to CustomStrings are now reflected in all situations.
TLMDCustomSwitch and descendants
[+] OnChange event added (triggered when enduser changes checked state)
TLMDButtonBar
[+] ItemParentFont added, font changing logic fixed;
[+] CtlXP property published; themed rendering added;
[+] separate ItemFont property added;
[+] mousewheel handling added;
[+] cursors allow item scrolling and pageup/pagedown allow changing sections now.
[+] TLMDPrintToolBar: BorderWidth property added

TLMDGlyphLabel
[+] GlyphNumber and GlyphColumn properties added
TLMDPageControl
[+] Options property: toShowAccelChar flag added.
[+] Docking support added
TLMDStatusBar
[*] OnMouseDown event -> default behaviour restored

TLMDTrayIcon:
[+] IsMinimized function (useful in connection with Hide-/ShowApplication methods)
[*] Changes for better Delphi/CRS 2007 support (especially MainFormOnTaskBar)
[+] Major enhancements with support for various extended TrayIcon features (available from Win2k and better):
Properties added:
[+]BalloonHint, BalloonTitle, property BalloonTimeout, BalloonFlags and Options
Events added
[+] OnAnimate
Methods added:
[+] function CanShowBallonHint:Boolean; (Balloon hints supported)
[+] function CurrentImageIndex:Integer;
[+] procedure HideBallonHint;
[+] procedure HideApplication;
[+] procedure ShowApplication;
[+] function ShowBalloonHint:Boolean; overload;
[+] function ShowBalloonHint(const aTitle, aHint: String; aFlags: TLMDBalloonFlags = bfNone; aTimeOut: Integer = 10000):Boolean; overload;
[+] procedure Refresh;
procedure SetDefaultIcon;
All new features are demonstrated in the reworked TLMDTrayIcon demo (available for Delphi(.NET)).

Other improvements

Installer
Detection of BDSCOMMONDIR improved (CRS 2007 only). [*] Redesigned LMDApplication.IsPrevRunning and LMDActivatePrevInstance to work with Delphi 2007
LMDSysIn Unit
[+] itTimeElapsedSinceBoot, itSysLastBootTime added to TLMDInfoType and GetSystemInfoString.
TLMDGradient
[*] max color count is 65535 now.
LMDHTMLUnit
[+] "N px"-like param implemented in <font size="+6px"> tag. E.g. <font size="6px"> is handled to set font size to exactly 6 pixels.
[*] Special chars set enlarged.
[+] Embedded control (Checkbox and radiobuttons) support added.
[+] <var> and <cite> tags added.
[+] Compatibility fixes (<s>,</s&tg;added; background attr. added);
Other general improvements
[+] LogTools package added (for use with LMD AnyLogger client)
[+] LMDUtils.pas: LMDSetForeGroundWindow - improved SetForeGroundWindow method which works correctly on Win98/2K.

[+] Unicode support improved
[+] CRS 2007.NET support



LMD BarPack 3.0


LMD ChartPack 2.0

[+] PrintPack support
[+] TLMDChartCTLine component
[+] TLMDChartPrintTask component
[+] CRS 2007.NET support


LMD FxPack 3.0
[+] CRS 2007.NET support


LMD RichPack 5.0

LMDRTFRuler:
[+] BackColor, MarginColor properties added; [*] EditRect made public.
[+] TLMDRTFRuler: IndentMarkerWidth property added;
[+] PrintPack support
[+] TLMDRichEditPrintTask component
[+] CRS 2007.NET support

LMD ShellPack 5.0
[+] CRS 2007.NET support


LMD SearchPack 4.0
[+] CRS 2007.NET support


LMD SysPack 4.0
[+] CRS 2007.NET support


LMD StoragePack 3.0
[*] TLMDFormStorage: Component stores original values of forms when shown in minimized/maximized state

after application start.
[*] TLMDStorFormStorage: Minor change for better support of MDI forms in connection with

TLMDBack/TLMDFormFill
[+] CRS 2007.NET support


LMD WebPack 5.0
[+] CRS 2007.NET support

LMD ElPack

LMD IDE-Tools

Archive