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

From LMD
Jump to: navigation, search
m
Line 41: Line 41:
 
[-] Parentless mode for docking panels has been implemented. Now a panel can have window handle even if it has no parent (like Delphi's frames). This should prevent "Control has no parent" VCL exception in some advanced cases, thus, simplifying the work with LMD-DockingPack.
 
[-] Parentless mode for docking panels has been implemented. Now a panel can have window handle even if it has no parent (like Delphi's frames). This should prevent "Control has no parent" VCL exception in some advanced cases, thus, simplifying the work with LMD-DockingPack.
  
[-] The bug with unability to popup panel's HeaderMenu in a case when a single panel is docked into a floating site (thus, panel's header is not visible) has been fixed.  Now it is possible to popup the menu by right clicking on a window caption of a single-panel floating site.
+
[-] Bug #777 with unability to popup panel's HeaderMenu in a case when a single panel is docked into a floating site (thus, panel's header is not visible) has been fixed.  Now it is possible to popup the menu by right clicking on a window caption of a single-panel floating site.
  
 
[+] Docking pack has been made more consistent with VCL ActiveControl concept. Also, the issue, with several active panels (in case of floating panels) visible at a time, has been fixed. Now, a panel is painted as active, only, when its parent form is active and it contains form's ActiveControl.
 
[+] Docking pack has been made more consistent with VCL ActiveControl concept. Also, the issue, with several active panels (in case of floating panels) visible at a time, has been fixed. Now, a panel is painted as active, only, when its parent form is active and it contains form's ActiveControl.

Revision as of 12:55, 23 November 2010

<< Back to Getting started page

[edit]

General

Support for IDEs and operating systems

  • Compatible with Delphi XE and C++ Builder XE!
  • Supported IDEs
    • Delphi 6, 7, Delphi 2005 - 2010 and XE
    • C++ Builder 6, 2006 - 2010 and XE
    • Delphi 2005.NET - Delphi 2007.NET
    • Turbo (2006) Professional versions for Delphi, C++ and Delphi.NET
    • All corresponding Studio Products (BDS 2006, CRS 2007, CRS 2009, ERS 2010 etc.)
  • Supported operating systems
    • Win98 and WinNT4 or better (including Windows 7).

For recent Delphi releases same platforms as the IDE are supported (e.g. Delphi 2009 officially supports Win2k or better only).

Common new features

Standalone Packs

LMD DockingPack

[*] Design-time behavior has been drammatically improved: designer hints has been disabled while splitter-moving to reduce flickers; default (useless in this case) designer mouse-moving of dock-panels has been disabled to reduce flickers; dragging dock-panels in the "Structure" Delphi's tree-view has been disabled to prevent panel's Parent change.

[+] New! Experimental feature. On the "LMD Docking" palette page "New dock-panel" item has been added. The item is not a simple component item. Dragging it over a docking site will initiate interactive (drag-dock-like) process of the new panel creation:

NewDockPanel.png

[+] New! "Drag panel content" mode has been added. In this mode the panel is immediatelly undocked and placed onto the floating site at the dragging start; then, the floating site form is dragged with the mouse instead of old semi-transparent blue rect. Don't worry, semi-transparent blue rect is still here, and used to highlight accepted positions :)

MovePanelContent.PNG

[+] New! Animation of hotspots and blue rect has been added. Alpha (fading) and bounds can be animated.

[+] TLMDDockZone.ResizeKind property, accessible at run-time, has been added. In addition to default proportional resizing defined by zrkProportional value, new zrkFixed value can be used to exclude some zones from proportional resizing algorithm.

[+] TLMDDockZone.Index property has been made read-write, so its now possible to set the index to specify the order of a child zone inside its parent zone. The Indexes of child zones determine they visual order in its horz-alignment or vert-alignment parent zone, or the visual order of the corresponding tabs in tabbed parent zone.  

[+] TLMDDockZone.Width and TLMDDockZone.Height properties has been made read-write, so its now possible to programmatically setup sizes of children zones inside a horz-alignment or vert-alignment parent zone. Due to proportional zones resizing it can be still hard to set required sizes of several child zones, because assigning at each iteration the size of a child zone will correct sizes of other child zones within the same parent; so sizes, set on previous iterations will be changed. To solve this problem TLMDDockZone.SetChildrenSizes method has been added, which allows to set sizes of all children at ones.

[-] Bug #775 has been fixed. Now OnClick is fired when you click dock-panel.

[-] Parentless mode for docking panels has been implemented. Now a panel can have window handle even if it has no parent (like Delphi's frames). This should prevent "Control has no parent" VCL exception in some advanced cases, thus, simplifying the work with LMD-DockingPack.

[-] Bug #777 with unability to popup panel's HeaderMenu in a case when a single panel is docked into a floating site (thus, panel's header is not visible) has been fixed.  Now it is possible to popup the menu by right clicking on a window caption of a single-panel floating site.

[+] Docking pack has been made more consistent with VCL ActiveControl concept. Also, the issue, with several active panels (in case of floating panels) visible at a time, has been fixed. Now, a panel is painted as active, only, when its parent form is active and it contains form's ActiveControl.

[+] New! VS 2010 style has been implemented: antialiased rounded corners, antialiased panel header buton images, hot tab state, custom floating form border. Corresponding TLMDDockVS2010Painter class implements this style:

VS2010Style.png

[*] TLMDDockPersister component has been renamed to TLMDDockManager. SiteCount and Sites[i] properties has been added to allow to iterate all existing sites (including dynamically created floating sites). OnCreateFloatingSite/OnDestroyFloatingSite events has been added to allow to configure floating sites at run-time. 

[*] Style related properties has been moved from panel/site to TLMDDockManager. Also it is now possible to choose the style at design-time. Supporting this concept, new TLMDDockManagerPainter class has been introduced. This class implements a proxy painter that uses currently selected in the docking manager style (and customized style settings). Now, this class becomes a default painter class.

LMD ThemePack

Gradient theme renderer

[+] Explicit methods SaveColorSchemeTo(File/Stream/XML) added
[+] UseCache property added. This property allows to turn off using cache.
[+] Modified property added.
[+] Office2010-like theme added.

Gradient theme editor

Now you have a tool for quick editing of gradient themes:

Image:te_preview_small.png

See description and tutorial movies here: http://wiki.lmd.de/index.php/LMDThemes_Editor.

LMD ShellPack

[+] TLMDShellList. Added theme support for header
Tlmdshelllist.png

LMD-Tools

Main Controls

[+] New TLMDTagEditor control
Tlmdtageditor.png

[+] New TLMDOpenPictureDialog/TLMDSavePictureDialog
Lmdopenfiledialog1.png
[+] TLMDFileOpenDialog and TLMDFileSaveDialog with fdoForcePreviewPaneOn options now correctly call TLMDOpenPictureDialog or TLMDSavePictureDialog instead of TLMDOpen/SaveFileDialog for Microsoft XP and lower versions.

Grid Controls

LMD ElPack

[+] Added variables for TElDbLabel, TElDbHTMLView

LMD IDE-Tools

[+] PasScript compiler optimization has been added: If a jump (conditional or unconditional) byte-code instruction points to another unconditional jump instruction, this first jump instruction is retargeted to prevent jump sequences.

[+] PasScript compiler optimization has been added: JumpIfEqual/JumpIfNotEqual byte-code instructions has been added to VM. Compiler logic has been improved to use these commands instead of sequence of two (Compare + JumpIfTrue/JumpIfFalse) byte-code instructions. This improves the speed of interpreting expressions used in If/While/Until conditions as well as incomplite boolean evaluation operations "or" and "and". Following this strategy, common cases like "while true do", "until false" has been optimized. Now, compiler emits single unconditional jump byte-code instruction instead of pushing constant onto stack and performing conditional jump

Changes/Enhancements since initial LMD VCL 2010 release

Archive