- Mustangpeak Common Library - 1.7.0 - EasyListview - 1.7.0 git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.Mustangpeak@2 60b41242-d4b9-2247-b156-4ccd40706241
360 lines
22 KiB
Plaintext
360 lines
22 KiB
Plaintext
Sept 3, 2007 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
|
|
|
|
|
|
Mar 18, 2007 Version 1.6.0
|
|
- 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.
|
|
- 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 bug where scrollbars not shown after double clicking in sizing area of Header to autosize the Column
|
|
- Added support to help descendants cancel out of drag operations by clearing the ebcs{x}ButtonDown flags in the MouseDown event.
|
|
- Fixed bug where a ELV on a form with hotkeys would first the hotkey instead of selecting items if IncrementalSearch was used.
|
|
- Fixed bug with Focusing of ELV
|
|
- 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 view not resizing when header double clicked to autofit.
|
|
- 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.
|
|
|
|
|
|
Nov 24, 2006 Version 1.5.0 Prerelease
|
|
- WARNING WARNING WARNING: A bug was discovered in the streaming of the Collection Items (the core class for
|
|
Items, Groups and Columns). I had to fix it to make the streaming extendable in the future.. and now.
|
|
I extended TEasyColumn in the last release so that means that all designtime AND persistent streams that
|
|
contain the ELV Header information will crash on start up. The problem is the wrong stream version was written
|
|
to the stream so there is no way to identify it on read in. It will give a stream read error when it is loaded.
|
|
I can't apologize enough for this mistake, it will be a painful upgrade.
|
|
- Fixed bug in the Collection Editor that caused a random AV in the IDE if the ELV was deleted
|
|
|
|
|
|
Nov 23, 2006 Version 1.5.0 Prerelease
|
|
- OnCustomView event has been renamed to OnItemCustomView and OnGroupCustomView and OnColumnCustomView added.
|
|
this will break your DFM file sorry... but it had to be changed.
|
|
- Some internal renaming of classes, for the TEasy... prefix
|
|
- Reworked the way the default views were stored. They are no longer stored a static properties they
|
|
call the new event handlers and dynamically callback everytime they are needed
|
|
- This means the way the View property works. This should fix the issue in the last SVN update
|
|
- TEAsyColumn.AutoToggleSort has been renamed to TEAsyColumn.AutoToggleSortGlyph to more accurately reflect
|
|
what it does. It should translate to the new property in the DFM without notice
|
|
- There is a new property TEasyColumn.AutoSortOnClick. This causes the Sorter to sort the list if the
|
|
header is clicked even if the ELV.Sort.AutoSort is False.
|
|
- Added TEasyBaseTaskBand.AutoScrollPanels to allow for the scroll bars of the panels to be shown or
|
|
not used if the band is smaller then the Panel
|
|
- Fixed a bug in the Theming with the TaskPanels
|
|
- Fixed bug in NavigateItemInternal, gave an AV under special conditions
|
|
- Added default parameter to DeleteSelected
|
|
procedure DeleteSelected(SelectPrevItem: Boolean = False);
|
|
- Added:
|
|
function CanMoveDown: Boolean;
|
|
function CanMoveUp: Boolean;
|
|
function MoveDown: Boolean;
|
|
function MoveUp: Boolean;
|
|
to allow selected items to be moved up or down. Make sure AutoSort is off.
|
|
|
|
Nov 12, 2006 Version 1.5.0 Prerelease
|
|
- YOU MUST UPGRADE THE COMMON LIBRARY TO VERSION 1.5.0 FIRST..............................
|
|
- Renamed and moved IEasyExtractObj to ICommonExtractObj in the Common Library Package
|
|
- Moved and renamed the follow to the Common Library Package
|
|
TWideStringDynArray to TCommonWideStringDynArray
|
|
TIntegerDynArray to TCommonIntegerDynArray;
|
|
TEasyFormatEtcArray to TCommonFormatEtcArray
|
|
TEasyVAlignment to TCommonVAlignment
|
|
- Number of renamings to support the above changes
|
|
- Added new component TEasyTaskPanelBand see the TaskPanel demo.
|
|
New panels are created in the File > New > Other... and the "New" tab under "EasyListview TaskPanel"
|
|
- New demo for the TEasyTaskPanelBand
|
|
- Moved the EasyDataObject into the Common Library Package (CommonDataObject)
|
|
- Added new Gradient "glass effect" (similar to vista) for item selection, see the Overview Demo.
|
|
- Added an OnPaintBkGnd event for custom painting of the background, see to Overview Demo.
|
|
- Added properties to the ELV.Background object to allow for text to be shown in the background,
|
|
see the Overview demo.
|
|
- Added OnClipboardXXXX events to handle custom clipboard actions
|
|
- Changed the way the focus rectangle was drawn to be consistent with VirtualTreevew
|
|
- Fixed issues with Column captions and fonts, caused a lot of "C..." with plenty of room for the text.
|
|
- Added option to hide the caption in Thumbnail and Filmstrip views (ELV.PaintInfoItem.HideCaption)
|
|
|
|
Oct 8, 2006
|
|
- 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. For instance:
|
|
|
|
ELV.Items.ReIndexDisable := True;
|
|
try
|
|
// Add the items here
|
|
finally
|
|
ELV.Items.ReIndexDisable := False
|
|
end
|
|
|
|
or
|
|
|
|
ELV.Groups.ReIndexDisable := True;
|
|
try
|
|
// Add the items here
|
|
finally
|
|
ELV.Groups.ReIndexDisable := False
|
|
end;
|
|
|
|
- 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
|
|
property HilightFocused: Boolean
|
|
property HilightFocusedColor: TColor
|
|
- 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
|
|
|
|
|
|
July 28, 2006
|
|
- Complete rework of the component structure, EasyListview now requires the
|
|
new MustangPeak Common Library components to be installed first.
|
|
Most issues can in compiling existing EasyListview code can be solved by replacing
|
|
any missing unit in your compile with...
|
|
|
|
uses
|
|
MPCommonUtilities, MPCommonObjects, MPShellTypes;
|
|
|
|
If you are using TWideFileStream or TWideStringList I suggest you use the Tnt Unicode package
|
|
available from
|
|
|
|
http://www.tntware.com/delphicontrols/unicode/
|
|
|
|
There is no point in me duplicating this work.
|
|
|
|
Any function used in the old VirtualUtilities or VirtualWideStrings that ended with a "W" is now
|
|
like the Tnt functions and begin with "Wide"
|
|
|
|
FileExistsW is now WideFileExists
|
|
ect...
|
|
DirExistsW is an exception it maps to WideDirectoryExists
|
|
|
|
If any object that use to be called TVirtualXXXXX or TEasyXXXX it is likely now
|
|
called TCommonXXXXX and in the MPCommonObjects.pas file of the Mustangpeak
|
|
Common Library Package.
|
|
|
|
Other issues that may be noticable at design time are:
|
|
|
|
An invalid stream read on a MouseButton type. This was a misspelling so just
|
|
ignore it. You may have to reset the mouse buttons that will allow a drag
|
|
select for nondefault buttons (left, right).
|
|
|
|
TEasyKeyStates => TCommonKeyStates
|
|
TEasyDropEffects => TCommonDropEffects
|
|
TEasyDropEffect => TCommonDropEffect
|
|
|
|
edeCopy, edeMove, edeLink => cdeCopy, cdeMove, cdeLink
|
|
edeNone, ..... edeScroll => cdeNone, ..... cdeScroll
|
|
|
|
THDrop => TCommonHDrop
|
|
|
|
TEasyMouseButton => TCommonMouseButton
|
|
|
|
|
|
May 28, 2006
|
|
- Added ELV.paintInfoItem.ShowBorder to not show a border
|
|
on views with Borders.
|
|
- Added TEasyAlphaBlender.BasicBlend with the same parameters
|
|
as the old blend method.
|
|
|
|
May 27, 2006
|
|
- Added OnItemSelectionsChanged to notify when item selection
|
|
has changed in volumn. OnItemSelectionChange is fired for
|
|
every item that changes selection state. This new event
|
|
only fires once when 1 or a block of items has changed
|
|
selection in one action (SelectAll for instance), Mantis #87
|
|
- Finished implementing the Hot-Tracking.
|
|
- TaskBand Hot-tracking now works as in Explorer, Mantis #83
|
|
|
|
May 26, 2006
|
|
- Release of version 1.0.0 Beta
|
|
- Added new component TEasySrollButton for more interesting
|
|
scrolling options. See the ThumbScroller Demo.
|
|
- Bug fixes.
|
|
- UPdated the component structure to allow descendants to more
|
|
easily hide unwanted properties.
|
|
|
|
May 22, 2006
|
|
- Fixed bug when deleting items and the scrollbar was not at 0.
|
|
- Added new TEasyTaskBand component that closely mimics the
|
|
ExplorerBand in Windows Explorer XP.
|
|
|
|
May 18, 2006
|
|
- Added to Tcolumn
|
|
- property AutoSizeOnDblClk;
|
|
- property AutoSpring;
|
|
AutoSizeOnDblClk resized the column to fit all captions if doubled clicks in
|
|
resize area of the header.
|
|
AutoSpring works like in VT. The columns try to stay in the same proportion
|
|
to other columns as the window is resized.
|
|
|
|
May 15, 2006
|
|
- Fixed bug in CustomDrawing TEasyAlphaBlender
|
|
- Added MergeSort to TEasySortManager, Code donated by Milan
|
|
- Fixed memory leak with AutoGroupSort
|
|
- Made Interfaced Sorting more robust to unallowed mixed item types
|
|
(with interfaced sorting ALL items must be of type TEasyInterfacedXXXX)
|
|
|
|
May 14, 2006
|
|
- Resizing Column would fire and AutoSort, fixed
|
|
- Image not clipped if column was at minimum width, fixed
|
|
- Added to TEasyListview
|
|
property DisabledBlendAlpha;
|
|
property DisabledBlendColor;
|
|
for blending of image when item is disabled.
|
|
- Added to TEasySelectionManager
|
|
property BlendAlphaTextRect
|
|
for blending of selection rectangles on text |