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

From LMD
Jump to: navigation, search
(Changes/Enhancements since initial LMD VCL 2010 release)
(=)
Line 215: Line 215:
  
 
See full list here [[LMD 2010 - History LMD-Tools]]
 
See full list here [[LMD 2010 - History LMD-Tools]]
 
===
 
  
 
== Archive ==
 
== Archive ==

Revision as of 14:17, 26 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

[+] LMDUnicode. Added LMDTryConvertUTF7ToUTF16 function
[+] LMDFiles. Added LMDFileExists and LMDFileAge
[+] LMDPngImage. Added MaskRect. Mask Rect by alpha from other PNG.
[+] LMDTypes. LMDDisableOleinit added, {$IFDEF LMDDISABLE_OLEINIT} removed
[+] LMDTypes. Added TLMDMargins.Create(ALeft, ATop, ARight, ABottom: Integer);
[+] TLMDGlyph. Added TextRect, GlyphRect, DrawnRect properties
[+] TLMDBaseListView. Added Theme support
[*] Various fixes and improvements

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 can use a tool for simple and fast editing of gradient themes:

Image:te_preview_small.png

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


Following:
[+] Theme Support for non-LMD controls, e.g. VCL Ribbon Controls from Delphi 2009 on (LMD 2011.2). Support for other controls on demand.

LMD InspectorPack

Following:
New separate standalone pack (available with LMD 2011.2 installers)

LMD OSPack

Following:
New separate standalone pack. Provides OS specific features like TaskDialog, support of Windows 7 features etc. (available with LMD 2011.2 installers)

LMD RichPack

Following:
[+] Feature Pack RichPack with improved undo/redo support, justification, improved Hypertext functionality etc. (LMD 2011.4)

LMD ShellPack

[+] TLMDShellList. Added theme support for header
Tlmdshelllist.png
Following:
[+] New features based on TLMDBreadCrumbs class (LMD 2011.3)

LMD WebPack

Following:
[+] Rework of WebUpdate functionality (LMD 2011.4)

LMD-Tools

Main Controls

[+] Adaption to new ThemeEngine features (Office 2007 / Office 2010 themes etc.)
[+] Several new controls with native scrollbars (TLMDScrollBoxExt, TLMDListBoxExt, TLMDComboBoxExt)

2010black.png 2007blue.png Image:2003ext_metallic.png

[+] 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.

Following:
[+] New ComboBox controls and features, including generic combobox (LMD 2011.1)
[+] New LMD HTML controls (LMD 2011.1/2)
[+] DateTimePicker Component (LMD 2011.2)
[+] PageControl enhancements like Drag&Drop support etc. (LMD 2011.3)
[+] Visual Improvements for calendar/clock/calculator controls (LMD 2011.3)
[+] Simple ToolBar control (LMD 2011.3)

Grid Controls

Following:
[+] Enhanced Feature Pack for (DBGrid), e.g. new editor classes like RichEdit editor. (LMD 2011.2)

LMD ElPack

[+] Adaption to new ThemeEngine features (Office 2007 / Office 2010 themes etc.)
[+] Added variables for TElDbLabel, TElDbHTMLView

Following:
[+] New ComboBox controls and features, , including generic combobox (LMD 2011.1)
[+] PageControl enhancements like Drag&Drop support etc. (LMD 2011.3)

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 Following:
[+] Native LMD VBScript like Basic implementation (LMD 2011.1)
[+] InspectorPack/DesignPack: Dynamic Properties (LMD 2011.2)


Changes/Enhancements since initial LMD VCL 2010 release

General

  • Delphi / C++Builder XE installer

LMD Tools

  • Added Action support for all TLMDBaseGraphicButton descendants
  • TLMDMessageDlg added ExecuteWithDefaults method
  • TCustomFileDialog.GetFileTypeIndex method is now virtual
  • LMDMaskEdit: SuppressBlankCharOnDelete property added (BTS #750)
  • LMDClass: ForceANSI property added in TLMDApplication class (affects text drawing routines LMDDrawTextExt and LMDDrawTextCalcExt used in LMD Tools, does not affect ElPack)
  • LMDGraphUtils: Now if LMDApplication.ForceANSI is true, then DrawTextEx are used instead of DrawTextExW in LMDDrawTextExt and LMDDrawTextCalcExt (See http://wiki.lmd.de/index.php/LMD_VCL_-_LMD-Tools_FAQ#Some_notes_on_Unicode_issues)
  • LMDFormPersistent: foWriteOnClose option added (false by default). This option allows to save changed params when form is closed instead of when it is destroyed)
  • LMDCustomEdit: ImageList support for special buttons added
  • LMDBevel: ModeChanging flag added to minimize number of window recreations when Bevel's props are changed
  • LMDPageControl: GetTabAreaColor for themed mode (ttmNative) implemented
  • LMDPageControl: Text color for thememode = ttmNative now is read from theme settings
  • Added two methods for TLMDPngObject - DrawAt and CopyRect
  • New control was added - TLMDFlowPanel
  • Added OnCustomization event for non-native (pre-Vista) TaskDialog
  • Added DefaultBOM constant.
  • LMDCustomMemo: LineGap property added
  • LMDFillers, LMDFigures, LMDGradientFrames units added to lmdrtlx package
  • LMDGraph: TLMDCutType added
  • LMDBaseEdit and descendants: IME input support added, clipboard operations with unicode text support added
  • LMDCustomMemo: unicode streaming routines SaveToStreamW, LoadFromStreamW, SaveToFileW, LoadFromFileW added
  • LMDButtonBar: ttmPlatform and ttmNative modes improved
  • LMDProcs, LMDGraphUtils: fill&color utils added for extended gradient library
  • LMDFontComboBox: foHideAtPrefixedFonts option added to TLMDFontCBOption
  • LMDCustomExtSpinEdit: added SpinBtnVisible protected property
  • LMDCalculator: Precision property added
  • LMDEditAutoComplete: Selection by mouse added; mouse wheel support added
  • LMD*Const.pas: missing string resources files added, existing string res files checked for consistency with english variant
  • Public function FormatTextByMask added (the logic same as in SetUnMaskedText)
  • LMDGradient: Separator for gradients added, allowing zero-transition area
  • LMDCalendar, LMDCal: added "inactive" days - end days of previous month and start days of next days
  • LMDBevel, LMDCustomBevel: lmdbevel has non-nil owner now
  • Multiline rotated text support added in FontFX
  • LMDWindows7Utils: Missing declarations for Windows 7, Delphi 2009
  • LMDSysPrinterInfo, LMDSysConst: BTS #743 Paper bins information added
  • LMDCustomExtSpinEdit: CheckOnExitOnly property added
  • LMDCustomEdit: virtual method ShowCueBanner added
  • LMDCustomMaskEdit: AsInteger can now be used with MaskType = meMask
  • LMDTaskDialogTemplate: Ctrl+C support added
  • LMDCopyTextToClipboard global method added to LMDUtils
  • LMDBiTrackBar component added
  • LMDBiProgressBar component added

LMD ThemesPack

  • LMDThemes: GetDetails method added
  • Rendering of CheckBox, TrackBar, RadioButton, Progressbar minor fixes and enhancements, minor optimization
  • Text descriptor types added
  • Text color customization for teTab implemented (GetThemeColor + GetThemeFont implemented)
  • LMD NewGradientThemeRenderer demo updated (samples of changing theme in run-time added)
  • Loading themes from CAB archives added
  • Two built-in color schemes added: Metallic(Silver) and Black
  • teToolBar support added
  • Properties *Fill, *Frame, *Fillers, *Params for direct theme editing added
  • SetNewColor method added
  • NewGradientThemeRenderer demo added
  • LMDThemesGradientThemeBase and LMDThemesGradientThemeRenderer units added (support of Office2007-like theme rendering for most of standard LMD controls

LMD SysPack

  • LMDSys*: Added new sys info components for viewing system Services and Drivers

LMD RichPack

  • LMDRTFDBRichEdit: the control now can be used within Dbctrlgrid (standard TDBRichEdit does not support such usage); rendering in Dbctrlgrid's panels fixed (did not work correctly)
  • LMDRTFFontComboBox: property for hiding @-prefixed fonts added

LMD DockPack

  • Docking site drawing interface (Painter) has been published. New OnGetPainterClass event has been added to the TLMDDockSite class. This allows for advanced users to write custom painters.
  • The ability to close tabs using middle mouse button has been added.

LMD GridPack

  • TLMDGrid, TLMDDBGrid: New features implemented
  • Custom parse/format events implemented for columns: TLMDGridTextColumn, TLMDGridDateColumn, TLMDGridFloatColumn
  • Choosers for different columns implemented: TLMDDateChooser, TLMDCustomChooser, TLMDPickListChooser, TLMDLookupChooser. See Chooser property of column.
  • Custom data source introduced for "virtual mode": TLMDGridCustomSource. See Grid.CustomSource property and example in demos.
  • Custom painting for data/header cells implemented with events: Grid.OnDrawDataCell/OnDrawHeaderCell/OnDrawIndicator.

See full list here LMD 2010 - History LMD-Tools

Archive