EasyListview Version History

Important Release News

11.23.07
  Version 1.7.2

  • Optimized FindLongestCaption method a bit

  • Added check for IDataObject = nil
  • Fixed typo with ettNoneWithSpace
  • Fixed problem with group still responding to the Expand/Collapse function in code even if the group was tagged as non collapsable
  • Fixed drawing bug with Hilighted (colored) sort column.
  • Added support for InsertMark to drag and drop reordering of items
  • Fixed drawing bug in selection rectangle
  • Added support for custom thread extractions.  See the new Threaded Thumbnails demo.

09.03.07
    Version 1.7.0

  • Ghosted property messed up stream.

  • Added more checks to keep ELV editor from starting to edit when control being destroyed causing AV.
  • Added OnAfterPaint event
  • Fixed some problems with the List mode SnapHorzView
  • Added a Header.ClickColumn procedure to simulate a column Click
  • Added a TopItem property to get the top item in the current window
  • Fixed a problem with the always show header and List mode when scrolling horizontal
  • Fixed a bug in the NextVisible enumerator with multiple Groups
  • Added support of the middle button, were not calling events
  • Reworked how MakeVisible function in the collection items works
  • Optimized the grid rebuild function.  Creates items about 25% faster
  • Added a new param to OnItemCompare to override the default sorting method.
  • New method addded: TEasySelectionManager.FocusFirst
  • Changed the was Parent Font Notification was handled.  It did not work like other controls
  • Reworked the way the scrollbars where handled for less flicker
  • Refactored to allow descendants to override the DoDragDrop call
  • OnOLEDragDrop event changed. Sorry this will cause problems in current applications.  Now has a parameter to cancel the default behavior of the drop.
  • Fixed bug in GridLine painting
  • Fixed bug with Interfaced items and deleting the items.
  • Fixed bug where OLE drop still possible with DragManager not enabled.
  • Improved the item focusing, when an item is deleted the next visible item will be selected.
  • Fixed problem with themed "+" button for group expanding when font <> 96 DPI
  • Added AllowHiddenCheckedItems property
  • Added Categories to Events at Designtime
  • Added OnScroll event.
  • Removed the Sort.BeginUpdate/EndUpdate within the ELV.BeginUpdate/EndUpdate I hope this does not lead to strange problems but it was sorting too much.
  • Added a Selection.PopupMode to keep the selection color normal when the Listview was not Focused
  • Fixed potiental AV when an IDataObject was created by EasyListview and was kept alive past the time when the EasyListview that created it was destroyed.
  • Fixed bug in VCL Drag and Drop when autoscrolling during the drag, it would cancel the D&D.
  • Fixed bug in TEasyHeader.FixedSingleColumn when resizing the Listview
  • Added an TEasyOLEDragManager.DragTarget boolean property to track when the window is a potential drop point.
  • Fixed bug with the Context Menu and dual monitors
  • Refactored the Taskband classes to better override them
  • Fixed bug with click Selecting
  • Added test to make sure the header is large enough for the current Font
  • If the image is larger then the cell size in Thumbnail View the image is StretchBlt to fit in the Cell 
  • The edit was not canceled when the mouse was double clicked.
  • Fixed bug with Header columns with the Bold property set.  Text was truncated with ...
  • Selection AnchorItem not cleared if the cached Item was Freed. Caused AV
  • Fixed alignment issue with Text
  • Fixed Task Panels showing in design positions before becoming anchored to TaskBand window.
  • Refactored the Selection Drawing Code
  • Fixed bug with GroupSelection, AlphaBlending, and Gradient selection properties set.
  • Fixed bug where context menu would open after a right drag select.
  • Added MouseGestures event to use mouse movements with the mouse down to execute and action (some call them Strokes)
  • Added ViewRect property to TEasyCollection items
  • Updated Hint Demo
  • Fixed bug with Context Menus 
  • Fixed problem with mouse wheel when switching between a horz view and a vert view
  • Fixed bug in TaskBand Panels at design time.  The Delphi Designer would not open the Form.
  • Added support for the "DropDown Button" in the header as in Vista.  Still needs to draw with the Vista Themes correctly.  See the Full Demo.
  • Fixed bug in the in place Editor message hook
  • Fixed the way the header autosize works.  Now it is a property (on by default) to automatically size the header based on the font.  Also the margin above and below the font is now adjustable
  • Fixed bug in the TaskPanels/TaskBand where horz scroll bar would be shown when it was not suppose to be.
  • Changed the way the embedded TaskPanels in the TaskBand are destroyed.  Could cause the application to not shut
  • Removed some Gradient drawing functions that were not used (had been moved to common library)
  • Fixed drawing problem with scrollbars (needed invalidating)
  • Fixed problems with compiling without the USETHEMES conditional define
  • Fixed compiling problems in D5 and earlier with property Categories. D5 and earlier will not support property Categories in the Object Inspector.
  • Fixed AV with EditManager Font if using the Font editor dialog.
  • A lot of changes in the Incremental Search code.  Should mimic Explorer now.
  • Worked on AutoSize for the List view and Small Icon View.  Not quite there yet.
  • Published the Color property for TEasyColumn
  • Added a TEasyListview.HintAlignment property for the Popup Hints
  • Added a DoEditKeyDown method for Cell Editor Classes to override
  • Columns (the header portion) now take on the current Header Color when created by default.
  • Fixed problem if Scrollbar was on Left size of window
  • Fixed problem with Caption Indent not being used in TEasyColumns if Right Justified
  • Fixed TCanvas memory leak
  • Added FindLongestCaption method to TEasyGrid class
  • Fixed problem with TEasyColumn clipping text if Font was bold
  • Fixed designtime issue with setting the Font using the dialog box
  • Fixed streaming bug, should be transparent to current users
  • Changed event prototype of OnIncrementalSearch, if you just delete your event handler EasyListview will handle the search itself by default now.
  • Fixed bug in reseting mouse gestures
  • Fixed bug with Header.FixedSingleColumn if set in component constructor
  • Fixed bug with Group band margins
  • Finally found bug with EasyListview/D2007 and Vista
  • Fixed bug with PaintInfo and TaskBands

03.18.07
    Version 1.6.0

  • Support for Delphi 2007 for Win32

  • Fixed bug with PageUp/Down in Report View
  • Fixed bug in the inplace editor when a the app ran under XP and not with a manifest
  • Added Header.ShowInAllViews to show the header in all views as in Vista.  Allows sorting in any view through clicking the Header
  • Added shortcut key support for Ctl + to autofit all Column
  • Added OnItemStructureChange, OnGroupStructureChange, and OnColumnStructureChange to detect when an object is added, deleted, or moved in the Collection
  • Fixed bug in the Groups.ItemByPoint function when the header was displayed
  • Added MakeAllVisible to make all groups and items in the control Visible
  • Added Header.AutoFitAllColumns to auto size all column to fit Data
  • Fixed possible AV if ELV size was zero
  • Fixed bug in header.AlwaysShowHeader and flickering of Scrollbars
  • Fixed flickering in the scrollbar in Report mode when sizing the columns.
  • Fixed bug with Horz scrolling and the WheelMouse in List View.
  • Fixed bug in Header.Columns.VisibleCount property
  • Fixed inplace text editors to support CTL-A to select all the text
  • Added "Visible" enumerators to the Header.Columns 
  • Added support for "snapping" of the horz scrollbar on column boundaries in List mode.
  • Fixed problem with Taskband and horizontal scrollbar
  • Added Edit.Color and Edit.Font to customize the Edit box.
  • Fixed problem with items being painted over the Header
  • Fixed problem with Taskband and not scrolling far enough when expanding/collapsing bands
  • Fixed PageDown problems with Items view
  • Changed TImageList to TCustomImageList to allow for 3rd party image packages to work better with ELV
  • Added a Ghosted property to TEasyCollectionItem
  • Fixed bug in the Vista type Blended Selection when AlphaBlend is enabled where the first and last columns of pixels were not alpha blended.
  • Changed FullCellPaint to subtract 2 pixels from the edges when in Icon modes so the selection are not touching each other.
  •  Fixed problem with view not resizing when header double clicked to autofit.

01.14.07
    Version 1.5.5

  • Fixed bug in Column Clear method.  Could cause an AV

  • Fixed bug that could cause AV on item deletion
  • Fixed inplaced editors not Themed 
  • Fixed bug in autosort
  • IMPORTANT: Some will hate it some will love it but I found a way to move VirtualShellUtilities into the common library so TNamespace can be used without the Shell Components.  It is Unicode enabled by using TntControls and the {$DEFINE TNTSUPPORT} like most other Mustangpeak libraries.  CommonLibrary, EasyListview and VSTools 2.0 all must be updated and rebuild, along with VirtualShellUtilities changed to MPShellUtilities in your projects.  Also a number of the strings that went with VirtualShellUtilities in VirtualResources.pas are now found in MPResources.pas so this unit may need to be added to your projects as well.
  • Fixed problem with USETHEMES define.
  • Added invalidation of window for full row select.
  • Added support for TileDetails to contain an index of -1 that indicates no Details string for that line.
  • Modified streaming system for TEasyCollectionItem and descendants.  It is not 100% foolproof that it will not have a problem with existing streams but the odds very good.
  • Implemented StateImages for Details View.
  •  Fixed drawing bug with Details view and the headers if no images were used.
  • Fixed bug where in Details view the editor for the last item would be too small and cut off the bottom of the text.
  • Fixed bug with inplace string editors and showing their context menus
  • Fixed compile error with D5 and the soCurrent/soFromCurrent types
  • Fixed bug with DblClick and autoresizing the columns in the header.
  • Fixed but on selection rect drawing with Listview in details mode and full row select 
  • Added support to shortcircut the drawing lockout with UpdateCount > 0 (for popup dialog that show when drawing is locked out)
  • Added OnItemGetEditMenu event to show a custom menu for the Item Editor.

 

10.6..06
    Version 1.2.0

  • Published the Tag property in the stored collection items

  • Added SetSize to TEasyCellSize
  • Minor fixes
  • Fixed bug with ContextMenu hotkeys
  • Fixed problem with Compilers.inc 
  • Fixed bug with context menu showing after right mouse drag/drop
  • Fix for flicker if selection when drag selecting
  • Added TNTSUPPORT compiler define to Options.inc to enable unicode-aware inplace editors.
  • Fixed bug with context menu showing after right mouse drag/drop
  • Added an ELV.Selection.SelectedToArray method to return the selected items in an array
  • Added an ELV.Selection.DeleteSelected method
  • Major internal change to adding/deleting items.  For large data sets the speed of the control    may be significantly slower.  This is because the items are reindexed for every addition    and deleting of an item for robustness under all conditions.  This can be manually shutoff with the new property ReIndexDisable.   
  • Added SpTBX support for painting.  Need to add the conditional define "SpTBX"
  • Fixed bug when setting a custom PaintInfo object to an Item
  • Fixed bug where drag selection would unselect item if the selection rect was (0, 0, 0, 0);
  • Reworked the order for when the LosingSelection, LosingFocus, and LosingVisiblility was being called during an item destruction.  Should make it more robust.
  • Fixed problem with grouping and disabling reindexing
  • Added OnItemMouseDown/Up events
  • Fixed some painting bugs in Thumbnail view.
  • Added internal streaming versioning to update stream without invalidating older streams
  • The Edit method now takes a column parameter. This will put different columns into edit mode in report view. 
  • This is not a great solution since there is no visual feedback that you can actually put the columns into edit mode
  • MakeVisible now functional for the columns in ReportMode
  • Added FirstVisibleColumn, NextVisibleColumn, PrevVisibleColumn, LastVisibleColumn to the Header object
  • Added support for Grid Lines in ReportView, see the PaintInfoItem.GridLines and GridLineColor.
  • Added support for hilighting the columns in Report and Grid Mode
  • Fixed bug with new support for grid lines
  • Fixed Demos to compile with latest changes
  • Fixed bug with GroupExpand and Collapse Events
  • Fixed but introduced lat release with column header captions
  • Added CacheDoubleBufferBits property, it is off by default (different then prev version).  
    •  If true the bitmap for the background is cached to the current window size.  
    •  Has a speed advantage at the expense of memory usage.
  • Changed the sorting to have a Sort.BeginUpdate/EndUpdate to keep from sorting redundantly
  • Fixed the String Editor so it is an Edit for single line caption views and TMemo for Multiline views.
  • Added event to allow application to supply the text for the initial edit string
  • Fixed bug that showed the wrong context menu in report view on the last item if the header was shown
  • Fixed the ELV.Group.ReIndexDisable property to actually work :^)
  • Gave the details view a 2 pixel margin on top to not "blend" into the Header
  • Simplified the code to resize the string edit box
  • Updated Main Demo to compile with new code.
  • Minor enhancements (SelectFirst method added)
  • Bug fixes for last column not resizing if invisible column is the last in the List
  • Added default parameter to Sort.SortAll to force it to sort regardless of the update Count
  • Added default value for published property Selection.MouseButtonSelRect
  • Fixed bug if OLE drag and drop when dragging the headers

 

7.28.06
    Version 1.0.0

  • As of now EasyListview 1.0.0 will require Mustangpeak Common Library.  Please download and install this before installing EasyListview.  This change will encapsulate common code between all Mustangpeak projects and will ensure bug fixes be reflected in all components.  I am sorry for this change but thought long and hard about it and it had to be done. 

  • Please Uninstall the old version and make sure to delete the folder that contained it before reinstalling this new version.

  • Changes:

Many of the units in EasyListview have been moved to the common library.  Most issues can be solved by replacing any missing unit in your compile with.

uses
    MPCommonUtilities, MPCommonObjects;
       and possibly
     MPShellTypes, MPThreadManager;

Any use of  the WideStringLists, WideFileLists or WideString routines now requires the use of Tnt Unicode Controls from TntWare.  There are a few simple necessary implementations of WideString functions in the Common Library but only those necessary to keep EasyListview from being dependant on Tnt Unicode Controls.  When converting to Tnt the following will be useful:

        TWideFileStream is now TTntFileStream
        TWideStringList is now TTntStringList

Any function used in the old LVWideStrings.pas unit that ended with a "W" can be found in the Tnt functions and typically begin with "Wide"

      FileExistsW is now WideFileExists
      ect...    
      DirExistsW is an exception it maps to WideDirectoryExists

If any object that use to be called TEasyXXXXX it is likely now called TCommonXXXXX and will reside in the MPCommonObjects.pas file of the Mustangpeak Common Library Package. 

Some of the OLE Drag and Drop Events have also changed their parameter types.  The TEasyXXX is again TCommonXXX.

  • Mantis #61, #80, #83, #85, #87, #88, #89, #90

  • Added new OnItemSelectionsChanged that fires only once if a block of items change selection state, as opposed to OnItemSelectionChanged/Changing that fires for every item.
  • Added TEasyAlphaBlender.SimpleBlend that works the same as the old original Blend method.

5.26.06
    Version 1.0.0 Beta

  • Added new components, TEasyScrollButton and TEasyTaskBand.  See the demos for details.

  • Mantis #78, #84, #82, #81
  • Bug Fixes

5.13.06
    Release of EasyListview 0.8.5

  • Added new Grid view.  Similar to Report but each items in the columns are selectable.

  • Support for BCB5 and BCB6, Thanks Milan.
  • Several bug fixes.
  • Finished implementing the Interface based Sorting IEasyCompare
  • A few designtime properties have changed name in ELV.Selection. It splits the Alpha for Image and Selection Rectangle into two properties as they are different value in Windows.
  • Fixed bug with focused item and collapsing in FilmStrip view.
  • The CustomDrawn image and TAlphaBlender has changed signature.  It should stay stable now
  • Fixed bug with TAlphaBlender and report view header

5.08.06
    Version 0.7.0

  • Fixed bug in drawing of checkboxes in Small Icon and Report view with large cell heights

  • Added default keyboard handling for the clipboard
  • Updates for VSTool integration
  • Mantis issue #74, add a "FilmStrip" view for horizontal thumbnails
  • Fixed a few range check errors
  • Bug in the text splitting code for Icon view fixed

5.06.06
     Version 0.6.0

  • Implemented the incremetal search

  • Fixed bug in drag images
  • Added support for Owner draw images in Items, Group, and Column header
  • Added support for Alphablending when using the DrawThumbnail event/interface
  • Mantis issues #54, #55, #62, #63, #69, #71, #72, #73, #77
  • Fixed bug in AutoGroup property at designtime, caused AV

4.22.06
     Release of EasyListview 0.5.15

  • Fixed Mantis issues #56, #57, #58, #59, #60

  • Implemented a way for auto grouping
  • More bug fixed/improvements (been to long to remember them all)

1.21.06
    Version 0.5.0

  • Fixed bug in Report view using Left Margins

  • Fixed bug in checkboxes.  Not responding to mouse click
  • Started to implement redesigned Sorting.  The interfaced data (Jim) demo show the sorting responding to the report header clicks.  You will get some "Missing property" warnings when opening the DFM.  Just ignore them.

1.21.06
    Version 0.4.0

  • Finished ContextMenu code, Mantis #52, and a Demo

  • Updates the Demos with unique Project names to create a Project Group to compile all Demos
  • Fixed some inconstancies in the naming in the object HitTestAt constants, updated demos with new names
  • Fixed packages to compile with D4-BDS2006
  • Double clicking ELV opens the Groups Editor
  • Updated Demos to be more D4 and D5 friendly

1.21.06
    Version 0.3.0

Warning:

This version changes the internal structure on the streamed data.  If you have design time columns do not open your project.  Open the DFM file with a text editor and find the EasyListview object.  Manually delete the binary sections that correspond to

Header.Columns.Items {....}

  • Fixed typo in TEasyPopoupMenuBeforeMenuBuildEvent > TEasyPopupMenuBeforeMenuBuildEvent

  • Header Properties changed. There is a "Position" of a column, the actually visible sorting of the column through user interaction, and the "Index" which is the order that the columns were originally inserted (unless they were sorted in code).
    • FirstColumn = Index
    • FirstColumnByPosition = Position Index
    • LastColumn = Index
    • LastColumnByPosition = Position Index
  • Another change in the Header Stream see above warning
  • Finally fixed the bug with AV's deleting items/columns/groups at design time.
  • Mantis issue(s) #51, #42, #44, #49 fixed

01-14-06
    Version 0.2.2

  • Please uninstall the old version before installing this version

  • Merged EasyLVDesignControls.pas in to EasyListview.pas that file is no longer needed and should be deleted
  • Added a default Data parameter of type TObject to each item.  If using interfaced data then the Data object may be the same object that implement the interfaces
  • Added a ShowGroupMargins property to quickly hide/show group headers/footers, note Group headers are off by default now.
  • Added an Items property to work with EasyListview as a simple listview not having to deal with groups.
    • ELV.Groups[0].Add(...)  becomes
    • ELV.Items.Add(...)
    • It will add a group if one does not exist
  • Reorganized the Demos
  • Changed HideThemedBorder to ShowThemedBorder for a postive logic and grouping of future ShowXXXX properties.

01-14-06
    Version 0.2.1

  • Added new option to turn of the resizing of the groups when the item focus overlaps the next group header in Large Icon mode.  Selection.ResizeGroupOnFocus

  • Scrollbars move one cell size instead of one pixel now.
  • Removed the beeping if you try to drag a header (not yet implemented yet)
  • Fixed Header hot track bug when scroll horizontally
  • Added Selection.BlendIcon option to allow no blending on the icon when an item is selected
  • Fixed bug in using a custom PaintInfo object on a per item basis
  • Simplified the names of the objects 
    • TEasyItemBase > TEasyItem
    • TEasyGroupBase > TEasyGroup
    • TEasyColumnBase > TEasyColumn

01-10-06
    Version 0.2.0

Warning:

This version changes the internal structure on the streamed data.  If you have design time item, groups or columns do not open your project.  Open the DFM file with a text editor and find the EasyListview object.  Manually delete the binary sections that correspond to

Header.Columns.Items {....}
and
Groups.Items {...}

  • Implemented a novel scheme for item, group and column objects.  When adding objects to the control you may choose from

    • Objects that query their data (captions, images, etc) though interfaces
    • Objects that query their data through callbacks on the EasyListview
    • Objects that store their data internally (such as design time objects)
    • Objects that store their data defined by the developer (custom object)

  • Fixed Mantis entry #35, 36

  • Drastically improved the speed of the control when using the interfaced or virtual items.
  • Drastically reduced the memory footprint of object (especially in Report mode) to 54 bytes (48 for the Virtaul objects) at the expense of a little drawing speed.  It works very good on my 733Mhz Laptop so let me know if this small performance hit is worth the much smaller memory requirement.

01-03-06 
    Version 0.1.13

  • This release only effects D4-D5 users.  I was experimenting and left in code that would not compile in these IDE's.

01-03-06
    Version 0.1.12

  • Fixed bug with focused item and collapsing in Icon mode

  • Spent time with AQTime 4 and drastically improved performance in most aspects of the component

01-03-06
    Version 0.1.12

  • Fixed bug with selection rectangle in small icon modes when large cell sizes used

  • Implemented sophisticated streaming support to save/restore contents of EasyListview
  • Fixed many bugs with the grouped selection
  • Improved performance of the GetFirst/GetNext Item enumerators

01-01-06
    Version 0.1.11

  • Fixed alpha-blended selection bug introduced in 0.1.10 in views other then Report

01-01-06
    Version 0.1.10

  • Changed the way the events and interfaces callback for Thumbnails, you now copy the thumbail into the passed TBitmap and instead of passing in a TBitmap.

  • Implemented Grouped Selections, most significant for alpha-blended selection rectangles or normal selection rectangles with different color borders.
  • Fixed a lot of bugs in the alpha-blended selection rectangle code.
  • Fixed bug with the TEasyListview.CellSizes property to change the size of the cells for each view
  • Updated the Basic Demo

12-29-05
    Version 0.1.6

  • Fixed Mantis issues 31. 

  • Added properties for custom images to be used in the group expand buttons
  • Added HideThemedBorder property for embedding ELV into a TBX window or similar that has its own border.

12-25-05
    Version 0.1.5

  • Fixed Mantis issues 24, 25, 26, 27, 28, 29, 30.  (see this is the best way to get things fixed!)

  • Updated the Demo a bit

12-8-05 
   Initial Release

  • Initial release for testing


mustangpeak.net

  Last Modified on: