January 2012
 - Bug fix: Fixed a potential access violation in TBaseVirtualTree.FullCollapse in case of toChildrenAbove
December 2011
 - Fixed compiler warning in RAD Studio XE2 regarding deprecated ThemeServices
September 2011
 - The property EmptyListMessage may now contain linebreaks in Delphi 2009 and higher, the text in now printed in dark gray.
 - Support for flat scroll bars has been removed.
 - Global variables InWin2k and IsWinXP, enum member hsXPStyle, function DrawXPButton() and support for Windows 2000 has been removed.
 - Global variable IsWinNT and support for Windows 9x has been removed.
 - Improvement: Added support for Delphi XE2 and 64Bit compiler.
 - Support for Delphi 5/6 and C++ Builder 5/6 has been dropped.
 - Bug fix: Fixed a potential integer overflow in TBaseVirtualTree.ToggleNode in case of toChildrenAbove and NodeInView
 - Bug fix: Fixed a potential Assertion in TBaseVirtualTree.ToggleNode by checking GetFirstVisible before calling GetDisplayRect
 - Bug fix: TCustomVirtualTreeOptions.SetPaintOptions correctly changes the VisibleCount when toShowFilteredNodes is toggled
 - Improvement: Added new functions TBaseVirtualTree.DetermineDropMode
 - Improvement: Added usage of TBaseVirtualTree.DetermineDropMode in TBaseVirtualTree.DragOver
 - Improvement: Made EffectiveOffsetX accessible via read-only protected property for easier subclassing
 - Improvement: Moved TBaseVirtualTree.DetermineLineImageAndSelectLevel from private to protected for easier subclassing
 - Improvement: Sorted TBaseVirtualTree.SetEmptyListMessage
August 2011
 - Improvement: Minor code improvements
April 2011
 - Bug fix: Reverted change of November 2010 (Creating the WorkerThread will no longer change System.IsMultiThread)
            it caused sporadic AVs during app start which disappeared after revering the change. This code can lead to a wrong value 
            of System.IsMultiThread which causes the memory manager to assume a single threaded application.
 - Bug fix: When advancing to the next item while in edit mode, we are now also calling CanEdit().
February 2011
 - Bug fix: In case the LastStructureChangeNode is deleted before the StructureChange event is fired,
            the reference to the LastStructureChangeNode is cleared to avoid providing an invalid node
January 2011
 - Improvement: RTF export now uses landscape paper format and smaller margins, so that more of the contents
                fits on the page
 - Improvement: New Option hoHeaderClickAutoSort for TVTHeader.Options: Clicks on the header will make the
                  clicked column the SortColumn or toggle sort direction if it already was the sort column
 - Improvement: Pressing the tab key in edit mode advances to the next node in edit node, just like the
                Windows 7 Explorer does it.
 - Bug fix: No longer auto-scrolling horizontally when the focused node changes if toFullRowSelect is turned on.
 - Bug fix: Fixed a clipping issue when drawing unbuffered
December 2010
 - Improvement: TBaseVirtualTree.HandleMouseUp now checks CanEdit just in case toEditOnClick
 - Bug fix: TotalNodeHeights are now correctly adjusted when toggling toShowHiddenNodes
 - Bug fix: Fixed BCB compiler error due to re-defining IDropTargetHelper
 - Improvement: New TVTInternalPaintOption poUnbuffered to directly paint onto a given canvas (especially useful
                when printing and/or scaling via world transformations)
 - Improvement: Refactored header painting to be more flexible (e.g. for printing)
 - Improvement: Made additional fields accessible via protected read-only properties for easier subclassing
November 2010
 - Improvement: All calls to SetWindowOrgEx now respect the canvas' transformation
 - Improvement: TBaseVirtualTree.GetNodeHeight will no longer measure the node height, if the node is about
                to be deleted
 - Improvement: Made TBaseVirtualTree.FRangeX and FRangeY accessible via read-only protected property
 - Improvement: Unified clipping handling
 - Improvement: Added new color setting "SelectionTextColor"
 - Improvement: Creating the WorkerThread will no longer change System.IsMultiThread
 - Bug fix: Fixed a potential integer overflow in TBaseVirtualTree.ToggleNode
 - Bug fix: TBaseVirtualTree.ToggleNode now measures the child node heights before summing them
 - Improvement: Made some private field of TVTHeader and TVirtualTreeColumns protected to make writing
                derived classes easier
 - Improvement: Enclosed call to DoDragDrop in TBaseVirtualTree.CMDrag in a try..finally block
 - Improvement: The default inplace editor now resizes itself even when the tree is in grid mode
 - Bug fix: TBaseVirtualTree.PrepareBitmaps now checks the existance of the main column correctly
 - Bug fix: TBaseVirtualTree.UpdateEditBounds now checks wether the focused node is assigned
 - Improvement: TBaseVirtualTree.FHintData is now available to derived classes via the protected property HintData
October 2010
 - Bug fix: Now taking horizontal scroll position into account when drawing text of EmptyListMessage property
 - Bug fix: Prevented potential "index out of bounds" exception in TVirtualTreeHintWindow.CalcHintRect
 - Bug fix - Issue #187: Showing a dialog in OnChange or OnRemoveSelection event handlers can cause the VT to
            enter mode for drawing selection rectangle.
 - Improvement: Made inherited event OnCanResize published for TVirtualStringTree for Delphi 2010 and later
 - Improvement: TBaseVirtualTree.ToggleNode now tries to keep the visual position of the toggled node,
                even when toChildrenAbove is set
September 2010
 - Improvement: Added additional check regarding the tree reference to TVirtualTreeHintWindow.AnimationCallback
 - Improvement: Made TBaseVirtualTree.AdjustImageBorder protected and virtual
 - Improvement: TVirtualTreeColumns now observes if the focused column is removed
 - Improvement: Made compatible with Delphi XE (Thanks to Roman Kassebaum)
August 2010
 - Improvement: TCustomVirtualStringTree.DoTextMeasuring now returns TSize
 - Improvement: Renamed TVTMeasureTextWidthEvent to TVTMeasureTextEvent and introduced new
                event TCustomVirtualStringTree.OnMeasureTextHeight
 - Improvement: Made TBaseVirtualTree.GetMaxColumnWidth virtual
 - Bug fix: TBaseVirtualTree.OnRemoveFromSelection is now triggered by TBaseVirtualTree.RemoveFromSelection
            as intended
July 2010
 - Bug fix: Toggling toShowFilteredNodes will now update the node counts in the tree even if its handle has not
            been allocated so far
 - Bug fix: TBaseVirtualTree.FindNodeInSelection should now work correctly with nodes above the 2gb boundary
 - Bug fix: Nodes that are about to be deleted are now removed from TBaseVirtualTree.FDragSelection
 - Bug fix: Changed TBaseVirtualTree.WMKeyDown to correctly handle special keys in Unicode based Delphi versions
 - Bug fix: Changed declaration of TBaseVirtualTree.EmptyListMessage to UnicodeString
 - Improvement: Added new property TBaseVirtualTree.EmptyListMessage. If this property is not empty, the assigned
                text will be displayed if there are no nodes to display, similar to the Windows XP file search.
 - Improvement: Added tstChecked to TVSTTextSourceType enumeration and support for the new flag to 
                GetRenderStartValues(). So you can export only checked nodes.
June 2010
 - Bug fix: range select with no nodes will no longer result in an access violation
 - Bug fix: TBaseVirtualTree.SetVisible now correctly decrements the visible node count
 - Bug fix: TStringEditLink.BeginEdit now calls AutoAdjustSize to ensure a consistent size of the edit field
 - Improvement: TVTHeader.AutoFitColumns is now declared virtual
 - Bug fix: header captions were badly positioned text if Extra Large fonts have been activated in the Windows
            display options
May 2010
 - Improvement: TBaseVirtualTree.PaintTree is now declared virtual
 - Bug fix: corrected calculations regarding tree height and visible count when using filtered nodes
April 2010
 - Bug fix: Changed TBaseVirtualTree.SetChildCount and TBaseVirtualTree.InitNode to correctly handle filtered nodes
 - Bug fix: Ctrl+Click on a node often cause a delayed update of the displayed selection due to a missing (or
            misplaced) call to Invalidate() in HandleClickSelection().
 - Bug fix: Shift+PgUp and Shift+PgDown now behave like a usual List(View) and select the node of the previous/
            next page. The behaviourly that was formerly assigned to these shortcuts is now triggeres when using
            Shift+Alt+PgUp / Shift+Alt+PgDown
March 2010
 - Bug fix: TBaseVirtualTree.CMMouseLeave now checks if the header is assigned before working with it
 - Bug fix: TCustomVirtualTreeOptions.SetPaintOptions will now invalidate the node cache if toChildrenAbove is
            changed
 - Bug fix: TBaseVirtualTree.HandleMouseUp will no longer cause an AV if HitInfo.HitNode is not assigned and
            tsToggleFocusedSelection is set
 - Improvement: new properties TBaseVirtualTree.OnAddToSelection and TBaseVirtualTree.OnRemoveFromSelection
 - Bug fix: fixed a whole bunch of painting issues regarding drag & drop
 - Bug fix: fixed TBaseVirtualTree.DragFinished to generate a button up event in case of using OLE drag & drop
 - Bug fix: TBaseVirtualTree.DeleteChildren no longer fails if the given node is nil
January 2010
 - Bug fix: Removed defaults from TVirtualTreeColumn.BiDiMode and TVirtualTreeColumn.Color
 - Bug fix: Clearing the columns while editing no longer raises an exception
 - Improvement: refactored handling of long running operations
 - Bug fix: TBaseVirtualTree.OnGetHelpContext now delivers the currently focused column instead of always 0
 - Improvement: the sort operation can now be canceled
 - Improvement: all BeginOperation/EndOperation pairs are now enclosed in try..finally blocks
 - Bug fix: the combination of toUseExplorerTheme and toFullRowSelect now also works correct when no columns are
            defined
December 2009
 - Bug fix: TVTHeader.HandleMessage now correctly handles double click autosizing when the index differs from
            its position
November 2009
 - Bug fix: TBaseVirtualTree.AdjustTotalHeight didn't change the height of invisible nodes which caused some trouble
            when making those nodes visible again
 - Improvement: a column is no longer painted 'down' if its check box was clicked
 - Bug fix: one can no longer toggle the check state of a column with the right mouse button
 - Bug fix: one can no longer toggle the check state of a node with the right mouse button
 - Bug fix: TCustomVirtualTreeOptions.SetPaintOptions no longer accidentally removed the the explorer theme
 - Bug fix: Fixed a potential Integer overflow in TBaseVirtualTree.CalculateVerticalAlignments
October 2009
 - Bug fix: enabling checkbox support for a column is now possible without assigning a dummy imagelist  
 - Bug fix: checkboxes in the header are now correctly aligned
 - Improvement: changed TBaseVirtualTree.PaintCheckImage to be usable by TVirtualTreeColumns.PaintHeader to be
                able to paint themed header checkboxes
 - Bug fix: TBaseVirtualTree.GetCheckImage now correctly handles cases when Node is nil and ImgCheckType is either
            ctTriStateCheckBox or ctNone
 - Bug fix: TBaseVirtualTree.HasImage now implicitly initializes the given node if needed to avoid requesting the
            imageindex for nodes that are not initialized
 - Bug fix: fixed possible AV when setting toExplorerTheme with no columns defined
 - Improvement: new events TBaseVirtualTree.OnSaveTree and TBaseVirtualTree.OnLoadTree
September 2009
 - Bug fix: TBaseVirtualTree.OnColumnClick will no longer be triggered twice
 - Improvement: new TVirtualNodeInitState ivsReInit to indicate that a node is about to be re-initialized
 - Bug fix: TCustomVirtualStringTree.DoTextMeasuring now makes use of the parameter Width of the
            OnMeasureTextWidth event
 - Bug fix: TBaseVirtualTree.DetermineLineImageAndSelectLevel will no longer access LineImage[-1]
 - Bug fix: clearing the columns now correctly reset TBaseVirtualTree.FFocusedColumn
 - Improvement: explorer style painting is now more close to the real explorer
 - Bug fix: TCustomVirtualStringTree.TContentToHTML.WriteStyle will no longer produce invalid CSS
 - Bug fix: the parameter DragEffect of TBaseVirtualTree.DragAndDrop is now var as it should be
August 2009
 - Bug fix: TBaseVirtualTree.MoveTo now initializes the target node using the target tree
 - Bug fix: TBaseVirtualTree.FVisibleCount is now calculated correctly when using filtered nodes
 - Improvement: introduced new initial node state ivsFiltered
July 2009
 - Improvement: modified TVTHeader.HandleHeaderMouseMove to make resizing the autosize column with the
                mouse possible
 - Improvement: modified TBaseVirtualTree.DoCreateEditor so that applications can now return NIL in OnCreateEditor
                to use the standard editor of the tree
 - Bug fix: pressing CTRL + PgUp/PgDown no longer leads to an index-out-of-bounds exception if no columns are used
 - Bug fix: avoided race condition between TBaseVirtualTree.DeleteNode and the worker thread 
 - Bug fix: TBaseVirtualTree.ToggleNode could produce an overflow if range checking was enabled 
 - Bug fix: TWorkerThread will no longer reference the tree after it has been destroyed (Mantis issue #384)
 - Improvement: removed support for Delphi versions older than Delphi 7
 - Improvement: removed local memory manager
June 2009
 - Bug fix: TBaseVirtualTree.InternalConnectNode checked the expanded state of the wrong node if Mode was
            amAddChildFirst or amAddChildLast
 - Improvement: 'hidden nodes' are now called 'filtered nodes'
 - Improvement: converted line endings back to CR/LF
 - Improvement: new events TBaseVirtualTree.OnCanSplitterResizeNode and TBaseVirtualTree.OnCanSplitterResizeHeader
 - Improvement: made TVirtualTreeColumns.DoCanSplitterResize virtual
 - Improvement: made some methods of TVirtualTreeHintWindow protected to make subclassing easier
 - Bug fix: fixed some issues concerning the vista theme handling
 - Improvement: unified source code indentation
May 2009
 - Improvement: new TVTMiscOption toEditOnClick, toEditOnDblClick to control if editing can be started with a single
                click or a double click
 - Bug fix: the internal pointers of TBufferedAnsiString are now PAnsiChar to work correctly with Delphi 2009
April 2009
 - Bug fix: TBaseVirtualTree.GetVisibleParent no longer returns the given node in case it is fully visible
 - Improvement: fixed a potential issue in TVirtualTreeColumns.TotalWidth in case it is called before
                FPositionToIndex is initialized
 - Bug fix: TBaseVirtualTree.CollectSelectedNodesLTR and TBaseVirtualTree.CollectSelectedNodesRTL handle straight
            vertical selection rectangles no longer as empty
 - Bug fix: TCheckImageKind.ckSystemDefault now works as intended
 - Improvement: made the following methods of TBaseVirtualTree virtual: PrepareCell, AddChild, BeginUpdate,
                EndUpdate and SortTree
 - Improvement: made TBaseVirtualTree.PrepareCell protected
 - Improvement: moved some members of TVTEdit and TStringEditLink from private to protected
 - Improvement: re-designed header click handling
 - Improvement: new TVTPaintOption toShowHiddenNodes to globally ignore the hidden state of nodes
 - Improvement: individual nodes can now be hidden without affecting their children
 - Improvement: re-designed Explorer theme drawing
 - Bug fix: corrected allocation problems in TBufferedAnsiString and TWideBufferedString
March 2009
 - Bug fix: fixed an issue in TVirtualTreeColumns.HandleClick that could lead to a case where no header click event
            is triggered
 - Bug fix: fixed an issue in TBaseVirtualTree.HandleHotTrack that could lead to an endless loop under certain
            conditions
 - Improvement: removed unused variables in TVirtualTreeColumn.ComputeHeaderLayout
 - Bug fix: corrected TBaseVirtualTree.GetVisibleParent
 - Improvement: extended hot node tracking to track the hot column too
 - Improvement: new THitPosition hiOnItemButtonExact used to draw hot buttons when using Windows Vista's Explorer
                theme
 - Improvement: new TVTPaintOption toHideTreeLinesIfThemed to consider toShowTreeLines only if running unthemed
 - Improvement: new TVTPaintOption toUseExplorerTheme to draw the tree like Windows Vista's Explorer treeview
February 2009
 - Bug fix: reverted the implementation of DrawTextW back to the one prior to 4.8.1 as the line end detection
            lead to a compiler warning under Delphi 2009
 - Bug fix: corrected implementation of GetStringDrawRect to match its declaration (UnicodeString vs WideString)
 - Bug fix: the node focus will no longer change if a TVTMiscOption.toGridExtensions is set and one clicks right of
            (or left of, if right-to-left reading) the last column
 - Bug fix: fixed an issue with TVTHeader.Assign that could lead to an access violation if the header is created at
            runtime
 - Bug fix: one can no longer change a node's height with the right mouse button even if toNodeHeightResize and
            toRightClickSelect are set
 - Improvement: TVTAutoOption.toDisableAutoScrollOnFocus now works for nodes too
 - Improvement: new property TBaseVirtualTree.SelectionLocked to disable changing the selection
 - Improvement: made the dual-scroll effect in TBaseVirtualTree.ToggleNode much smoother
 - Bug fix: removed off-by-1 errors in TBaseVirtualTree.ToggleNode
 - Bug fix: added a check for FUpdateCount to TBaseVirtualTree.SetUpdateState as otherwise every call to
            TBaseVirtualTree.DoBeforeCellPaint to get the cell content margin within an Begin/EndUpdate-block would
            re-enable painting
 - Bug fix: TVTHeader.HandleMessage could provide a wrong column index to OnBeforeColumnWidthTracking in some cases
 - Improvement: new properties TBaseVirtualTree.OnBeforeAutoFitColumn, TBaseVirtualTree.OnAfterAutoFitColumn
 - Improvement: new procedures TBaseVirtualTree.CancelOperation, TBaseVirtualTree.BeginOperation,
                TBaseVirtualTree.EndOperation and new property TBaseVirtualTree.OperationCanceled to enable the
                application to stop (possibly) long-running operations
 - Improvement: integrated changes from Andreas Hausladen
 - Improvement: integrated changes from Dmitry Zegebart where applicable
 - Bug fix: removed off-by-1 error in TBaseVirtualTree.GetDisplayRect
 - Bug fix: changed the size of the buffer used in TBaseVirtualTree.PaintTree to paint the area below the last node
            as the bitmap was not completely erased using previous size under certain conditions
 - Bug fix: fixed TBaseVirtualTree.GetPreviousLevel
January 2009
 - Bug fix: removed off-by-1 error in TBaseVirtualTree.GetBottomNode
 - Improvement: improved speed of TBaseVirtualTree.GetMaxColumnWidth when using UseSmartColumnWidth
 - Version is now 4.8.0
December 2008
 - Bug fix: modified TBaseVirtualTree.UpdateHorizontalScrollbar and TBaseVirtualTree.UpdateVerticalScrollbar to
            recalculate the tree's dimensions even if an update is in progress
 - Improvement: renamed TVTHeaderState hsTracking and hsTrackPending to hsColumnWidthTracking and
                hsColumnWidthTrackPending
 - Improvement: modified TBaseVirtualTree.GetFirstVisible and TBaseVirtualTree.GetFirstVisibleNoInit to optionally
                take a node to specify where to start
 - Improvement: modified TVTAfterGetMaxColumnWidthEvent to make the result of TBaseVirtualTree.GetMaxColumnWidth
                changable
 - Bug fix: corrected TBaseVirtualTree.GetMaxColumnWidth to consider toFixedIndent and no longer take nodes into
            account that are just above or below the visible area
 - Improvement: new property TVirtualTreeColumns.DefaultWidth
 - Improvement: new property TVTHeader.FixedAreaConstraints (new class TVTFixedAreaConstraints) to limit the
                fixed area (header, fixed columns) to a percentage of the client area
November 2008
 - Improvement: new cursor added: crVertSplit used for height tracking
 - Improvement: changed type of TVTHeader.Height from Cardinal to Integer to make boundary checks easier
 - Improvement: new properties TVTHeader.MinHeight and TVTHeader.MaxHeight
 - Improvement: new VirtualTreeStates tsNodeHeightTracking and tsNodeHeightTrackPending
 - Improvement: new HeaderStates hsHeightTracking and hsHeightTrackPending
 - Improvement: new TVTMiscOption toNodeHeightResize to allow changing node heights via mouse
 - Improvement: new TVTHeaderOption hoHeightResize to allow changing header height via mouse
 - Improvement: new properties TBaseVirtualTree.OnHeaderHeightTracking, TBaseVirtualTree.OnHeaderDblClickResize,
                TBaseVirtualTree.OnColumnWidthTracking, TBaseVirtualTree.OnColumnWidthDblClickResize,
                TBaseVirtualTree.OnNodeHeightTracking, TBaseVirtualTree.OnNodeHeightDblClickResize
 - Improvement: new function TVTHeader.ResizeColumns to resize multiple columns at once
 - Improvement: TVTHeader.DetermineSplitterIndex is no longer influenced by non-resizable columns
 - Bug fix: TBaseVirtualTree.ToggleNode now uses DoStateChange to modify FStates
 - Bug fix: TBaseVirtualTree.DoBeforeCellPaint now saves the update rect if CellPaintMode is cpmGetContentMargin
            and restores it afterwards
 - Improvement: modified TBaseVirtualTree.CmMouseWheel to handle mice with wheel delta < 120 correctly
 - Improvement: modified TVTHeader.LoadFromStream and WriteToStream to save ParentFont
 - Improvement: TVTHeader.Font is now only stored by Delphi if ParentFont is False (Mantis issue #217)
 - Bug fix: corrected TVTHeader.Create to set TVTHeader.FOptions correctly to the default value (Mantis issue #333)
 - Improvement: new TVTAnimationOption toAdvancedAnimatedToggle to scroll the node to be toggled animatedly instead
                of just scroll its child nodes animatedly
 - Improvement: added VirtualTreeState tsToggling to eliminate artefacts caused by TBaseVirtualTree.DoSetOffsetXY
                while toggling
 - Bug fix: corrected button handling when toFixedIndent is set
 - Improvement: redesigned TBaseVirtualTree.ToggleNode to harmonize the visual toggle behaviour independent of
                toChildrenAbove
 - Improvement: made TBaseVirtualTree.CanEdit public
 - Improvement: added parameter ConsiderChildrenAbove to TGetNextNodeProc
 - Improvement: modified all variants of TBaseVirtualTree.GetFirst and TBaseVirtualTree.GetLast to optionally
                consider toChildrenAbove
October 2008
 - Bug fix: removed 'FVisibleCount := 0' from TBaseVirtualTree.Clear as this would lead to incorrect VisibleCount in
           read-only mode
 - Bug fix: fixed a condition in TBaseVirtualTree.ToggleCallback that could lead to artefacts
 - Improvement: changed the implementation of TBaseVirtualTree.GetNext/GetPrevious so that no penalties occur if
                toChildrenAbove is not set
 - Improvement: TBaseVirtualTree.ToggleNode will no longer leave nodes with state vsToggeling if an exception
                occurs
 - Improvement: improved behaviour of TBaseVirtualTree.ToggleNode in case toChildrenAbove is set
 - Bug fix: corrected TBaseVirtualTree.ScrollIntoView to behave as expected when no fixed columns exist
 - Bug fix: extended TBaseVirtualTree.InitializeLineImageAndSelectLevel to eliminate artifacts while scrolling with
            toChildrenAbove set
 - Bug fix: corrected CompareNodePositions to consider toChildrenAbove
 - Bug fix: corrected ToggleNode to scroll correctly if toChildrenAbove and toAnimatedToggle are set
 - Improvement: new TVTPaintOption toFixedIndent to draw the tree with a fixed ident (instead of node level
                dependent indents)
 - Improvement: new TVTPaintOption toChildrenAbove to draw children nodes above their parent
August 2008
 - Improvement: redesigned and overloaded TBaseVirtualTree.ScrollIntoView in order to use vertical scrolling
                separately
 - Improvement: optimized TBaseVirtualTree.ScrollIntoView for horizontal scrolling
 - Improvement: in TBaseVirtualTree.WMKeyDown column navigation for VK_PRIOR and VK_NEXT is now handled in same way
                as row navigation
 - Improvement: new TVTHeaderOption hoDisableAnimatedResize to disable animated resize for all columns
 - Improvement: new TVTColumnOption coDisableAnimatedResize to disable animated resize for a specific column
 - Improvement: in TBaseVirtualTree.UpdateHorizontalScrollBar and TBaseVirtualTree.UpdateVerticalScrollBar scrollbar
                updates now avoided for tsUpdating in FStates
July 2008
 - Improvement: in TBaseVirtualTree.WMHScroll the horizontal page scrolling now considers fixed columns
 - Improvement: in TBaseVirtualTree.ScrollIntoView the case of FFocusedColumn being invalid is considered
 - Improvement: in TBaseVirtualTree.HandleMouseDown DoFocusNode is not called if node focus did not change
 - Improvement: in TBaseVirtualTree.SetFocusedColumn the focused node will only be invalidate if it was actually
                scrolled into view
 - Improvement: new TVTColumnOption coAllowFocus to affect column focus behaviour
 - Improvement: new function TVTHeader.AllowFocus to check wether a column can be focused
 - Improvement: in TBaseVirtualTree.SetFocusedColumn the old colunm and the new column are both invalidated
 - Improvement: merged latest changes from Jim into current code base.
June 2008
 - Improvement: new property TVirtualTreeColumns.Count
 - Bug fix: in TVirtualTreeColumns.AnimatedResize the column is validated (to avoid "List index out of bounds")
 - Improvement: the content retangle of the cell can be modified via the OnBeforeCellPaint event, the cell paint
                mode indicates wether OnBeforeCellPaint is called for painting the cell or just for getting the
                cell content margin
 - Improvement: new functions added: TBaseVirtualTree.DoGetCellContentMargins,
                TCustomVirtualDrawTree.DoGetCellContentMargin
 - Improvement: new property: TCustomVirtualDrawTree.OnGetCellContentMargin
 - Improvement: in TBaseVirtualTree.GetMaxColumnWidth the cell content margin is considered
 - Improvement: in TBaseVirtualTree.CMHintShow the cell content margin is considered for singleline tooltips
 - Improvement: new function added: TVTHeader.DoGetPopupMenu (to query the application via TreeView.FOnGetPopupMenu
                for a column specific header popup menu)
 - Improvement: new property added: TBaseVirtualTree.OnCanSplitterResizeColumn,
                new function added: TVirtualTreeColumns.GetScrollWidth
 - Improvement: horizontal page scrolling now uses the average column width (of all visible, non-fixed columns) as
                scroll amount
 - Improvement: procedure TBaseVirtualTree.CMMouseWheel redesigned
 - Bug fix: TVTHeader.DetermineSplitterIndex works correctly even when using fixed columns
 - Bug fix: on right-to-left BiDiMode TVirtualTreeColumns.PaintHeader respects (left) scroll bar correctly
 - Bug fix: for multiline tooltips also the column width is checked to determine the tooltip is needed or
            unnecessary
 - Improvement: the result value of GetUseSmartColumnWidth is initialized correctly
 - Improvement: added hoFullRepaintOnResize to TVTHeaderOption to enable full header repainting (instead of
                repainting all subsequent columns only) on resizing a column
 - Bug fix: horizontal page scrolling via mouse wheel now works correctly, i.e. in TBaseVirtualTree.CMMouseWheel
            ScrollCount includes GetVisibleFixedWidth and FIndent
 - Improvement: new TVTColumnOption coSmartResize to avoid contradicting the virtual paradigm
 - Improvement: horizontal scrolling via mouse wheel can be forced by holding the shift key
 - Improvement: new parameter for function TBaseVirtualTree.GetMaxColumnWidth added: UseSmartColumnWidth (to
                avoid contradicting the virtual paradigm, i.e. leave nodes out of consideration which are not in
                view)
 - Improvement: new parameters for TVTHeader.AutoFitColumns added: SmartAutoFitType, RangeStartCol and
                RangeEndCol
 - Improvement: new parameters for events FOnAfterAutoFitColumns, FOnBeforeAutoFitColumns, FOnAfterGetMaxColumnWidth
                and FOnBeforeGetMaxColumnWidth added
 - Version is now 4.6.0
May 2008
 - Improvement: new properties: FOnAfterAutoFitColumns, FOnBeforeAutoFitColumns, FOnAfterGetMaxColumnWidth and
                FOnBeforeGetMaxColumnWidth
 - Bug fix: FDropTargetNode is considered in TBaseVirtualTree.DoFreeNode
August 2007
 - for accessibility, added an OnGetImageText event that can be used to give accessible text to images used in nodes.
 - Implemented an ImageText property used by the VTAccessibility unit to retrieve text for a given node and its column.
 - Switched loading of accessibility libraries to dynamic from static to avoid problems in Win95
June 2007
 - Bug fix: Fixed a problem with potentially large amount of nodes (larger than 2 billion) in
            TBaseVirtualTree.SetChildCount.
 - Bug fix: remove hint if any in case the tree loses the focus.
 - Improvement: TVirtualTreeColumns.HandleClick is now virtual, introduced TVTHeader.DoSetSortColumn.
 - Bug fix: compiler error due to old variable reference when enabling flat scrollbars.
May 2007
 - Improvement: new functions: GetPreviousSelected, GetPreviousChecked, GetCheckedCount,
   GetPreviousCutCopy, GetCutCopyCount, GetFirstLeaf, GetNextLeaf,
   GetPreviousLeaf, GetFirstLevel, GetNextLevel, GetPreviousLevel
 - Improvement: new properties: CheckedCount, CutCopyCount
 - Improvement: DoFocusChanging for finding a valid column (TBaseVirtualTree.WMKeyDown)
March 2007
 - Improvement: adjusted accessibility implementation to compile with pre-BDS IDEs.
 - If a column is not visible, MultiColumnAccessibility now will not include it.
January 2007
 - Improvement: added code donation from Marco Zehe (with help from Sebastian Modersohn) which implements the
                MS accessibility interface for Virtual Treeview.
December 2006
 - Improvement: bidi mode implementation finished (toAutoBidiColumnOrdering introduced)
 - Change: right-to-left flag removed from shorten string methods/events (not necessary)
 - Version is now 4.5.0
November 2006
 - Bug fix: Total height is wrong on reading from stream
September 2006
 - Bug fix: Mantis issue #326
July 2006
- Change: value for crHeaderSplit cursor conflicts with other resource IDs, so I changed it.
- Published OnStartDrag in VirtualDrawTree.
April 2006
 - Bug fix: check for MMX availabiltiy is missing in some places before calling MMX code
 - Bug fix: flag for VCL dragging was removed too late causing all kind of problems with mouse up code in VCL drag mode.
 - Bug fix: If the past mode in ProcessOLEData is amInsertAfter then nodes where inserted in the wrong order.
March 2006
 - Bug fix: total count and total height is wrong after loading from stream
 - Bug fix: variable node height computation
 - Bug fix: FLastChangedNode was not reset in DoFreeNode
February 2006
 - Improvement: GetFirstChecked now also has a default value for its state parameter.
 - Improvement: avoid potential reentrancy problems in paint code by checking for the paint state there.
January 2006
 - Bug fix: disabled images are now drawn like enabled ones (with respect to position, indices etc.).
 - Improvement: New property BottomSpace, allows to specify an additional area below the last node in the tree.
 - Bug fix: VT.EndUpdate did not invalidate the cache so the cache was never used again after that.
 - Improvement: tree states for double clicks (left, middle, right).
December 2005
 - Bug fix: check for column index for auto setting main column if the current one is deleted.

For full document history see help file.
