The unit RepList contains the Delphi™/C++Builder™ visual component TReportListView which provides a list view similar to the Delphi™/C++Builder™ component TListView with the ViewStyle set to vsReport. TReportListView is up to a factor of 100 faster than the standard list view, provides a sorting facility, and an enhanced layout of the list. More details can be found in the online help pages.
The unit REPLIST is part of the SDL Component Suite.
RepListv | ![]() |
replistv.zip
(334 kB) |
ReplDragDrop | Shows how to implement drag and drop using the report listview contained in unit REPLIST. | repldragdrop.zip
(272 kB) |
What's new:
- Release 10.7 [Aug-24, 2020]
- the methods TRLData.RemoveColumn and TRLData.InsertColumn allow to delete or insert a column
- the method TRLData.InsertRow inserts a row
- the method TReportListview.RemoveColumn deletes a column of the report listview
- the method TReportListview.InsertColumn inserts a column in the report listview
- SortEnabledState allows to sort the enabled and disabled rows of the report listview separately
- bug fix: reading from XML files did not correctly read data if the number of rows was zero
- Release 10.6 [Mar-09, 2018]
- the methods ExportCSV and ImportCSV allow you to export or import the cells of the report list to/from a CSV file
- the function FilterAndSort has been changed so that the filter expression evaluates all selected columns together (instead of evaluating the search on a column per column basis)
- the new methods SelectColumn and SelectRow select a specific column or row, deselection all others
- the new event OnReadCell allows to adjust cell contents during reading
- the new event OnCursorKeyAction handles the pressing of the cursor keys
- the methods SetAllCheckmarksOfCol and InvertAllCheckmarksOfCol provide now additional overlaid parameters to affect only enabled rows
- bug fix: the property AsNumber raised an exception if the corresponding cell was checked
- bug fix: FirstCheckedElemInCol created an integer overflow if report listview is empty
- bug fix: AutoColWidth did not correctly process the width of the column header
- Release 10.5 [Oct-10, 2016]
- CountCheckedElemsInCol now counts the checked elements of enabled rows only
- the method SetColumnOrder allows to rearrange the visual order of the displayed columns
- the readonly property ColumnOrder returns the visual position of a particular column
- bug fix: the color of the fixed columns was always clSilver (instead of FixedColor)
- bug fix: component displayed spurious lines after resizing
- bug fix: FirstSelectedRow did not take care of disabled rows
- Release 10.4 [Jun-02, 2015]
- bug fix: the colors of checkmark frames could not be controlled in the OnBeforeRenderCell event if the cell was enabled
- Release 10.3 [Oct-06, 2014]
- CenterScrollAndSelect has been improved so that rows are not scrolled if list view is shorter than the number of possible visible rows
- TRLData.FirstCheckedElemInRow and TReportListView.FirstCheckedElemInRow return the first check element in a row
- FitAllColWidths adjusts all columns to their optimum widths
- bug fix: access on cells of FRLData is now checked for validity of array boundaries
- bug fix: cells with invalid cell indices now return always an empty string
- bug fix: double header section appeared when extending the number of columns
- Release 10.2 [May-30, 2013]
- bug fix: LoadLinesFromFile now extends the report listview and correctly loads data if FirstRow is greater than the number of rows
- Release 10.1 [Oct-29, 2012]
- new properties ColumnHeadersHeight and CommonHeaderHeight allow to control the height of the column headers and the common header
- the new property NumEnabledRows returns the number of enabled rows
- the new method TRLData.RemoveRow deletes a row in the report list data structure
- the new method TRLData.RemoveEmptyRows deletes all empty rows in the report list data structure
- both the common header and the column headers now support multi-line labels
- bug fix: RemoveRow did work correctly when last row was removed while CommonHeader was visible
- bug fix: property LeftCol did not work properly if FixedFirstColumn was TRUE
- bug fix: property TopRow did not work properly if CommonHeaderVisible was TRUE
- bug fix: InplaceEditor was misaligned after deleting rows
- bug fix: selecting a range of rows worked correcly only if a single header is visible
- Release 10.0 [Oct-4, 2011]
- new method CenterScrollAndSelect scrolls the list view so that a particular row is selected and visible in the center of the list view
- the method AutoColWidth has been extended by an overloaded version which allows to restrict the maximum column width
- the new method DetermineMaxColWidth returns the required width of a column to avoid clipping its contents
- slight change in declaration of TCheckStateChangeEvent (State is now a variable parameter)
- new event OnBeforeCheckedChange allows to intervene during ticking off a check box
- the new array property RowEnabled allows to control which of the rows are disabled or enabled
- the new properties ColorDisabledBkgd and ColorDisabledText control the colors of disabled rows
- the new methods DisableAllRows and EnableAllRows change the enabled state of all rows
- new method FilterAndSort allows to filter the report listview and display only part of the contents
- new properties TRLData.ColumnCheckMode and TReportListView.ColumnCheckMode implement an additional checkbox mode (radio buttons) and replace the old properties TRLData.IsCheckedColumn and TReportListView.IsCheckedColumn, respectively.
- new functions TRLData.FirstCheckedElemInCol and TReportListView.FirstCheckedElemInCol return the index of the first checked element in a particular column.
- Release 9.7 [May-31, 2010]
- new property SecondarySortColumn controls the sorting behavior if two or more equal cells are to be sorted
- new property UseCtrlForMultiSel controls behavior when multi-row selection is active
- new properties EmptyMessage and ColorEmptyMsg allow to define a default message for empty report lists
- new method TRLData.CopyRow implemented
- new methods SetAllCheckmarksOfCol and InvertAllCheckmarksOfCol implemented
- bug fix: Assign method of TRLData did not copy column zero
- Release 9.51 [Dec-01, 2008]
- no changes
- Release 9.5 [Oct-31, 2008]
- LoadLinesFromFile now displays additional rows as expected
- Sort method now provides a secondary sorting key
- Release 9.0 [May-28, 2007]
- new method RemoveEmptyRows implemented
- internal data structure of component is now packed into separate class TRLData
- new property ShowEmptyCheckBoxes allows to hide check boxes of empty cells
- new function MouseCell returns the cell number of a particular point of the report list
- two new functions CountCheckedElemsInCol and CountCheckedElemsInRow count checked elements
- new property CountHeadRows returns number of visible headers
- Enabled property now affects colors of text, check boxes and highlighting (cells appear dimmed if disabled)
- column headers can now be adjusted in color by ColorColumnHd and ColorColumnHdText
- the data of the report listview can now be displayed without any headers by setting both the new CommonHeaderVisible and the new ColumnHeadersVisible properties to FALSE.
- new common header implemented, which is controlled by the following properties: CommonHeader, CommonHeaderVisible, CommonHeaderAlignment, ColorCommonHd, ColorCommonHdText
- new property FixedFirstColumn can be used to create a row header
- improvement: component uses now double buffering to reduce flicker when scrolling
- bug fix: horizontal scrolling no longer creates spurious vertical lines in header
- bug fix: FirstSelectedRow returned 1 in some cases despite the number of rows was zero
- bug fix: InterRowIndicatorPos works now correctly if TopRow is greater than 1
- bug fix: component is no longer disabled if EditRowEntries is called with an readonly column formatter
- bug fix: Fill now works correctly for checked columns too
- bug fix: ExportHTMLTable now creates correct HTML tables for checked columns, too
- bug fix: property LeftCol now addresses the columns correctly (had an offset of +1)
- Release 8.5 [Feb-18, 2006]
- new method ExportHTMLTable allows to export the report list view as an HTML file
- new event OnBeforeHTMLExport allows to control specific HTML properties of the exported text
- the new event OnBeforeSortExchange allows to influence the sorting behavior of the list view
- CopyToClipboard offers now an additional, overloaded version which allows to insert any string as separator
- Release 8.2 [Nov-03, 2004]
- no changes
- Release 8.1 [Aug-29, 2004]
- available for Delphi™ 8 for .NET
- OnBeforeRenderCell event implemented
- bug fix: ColumnAlignment now affects alignment of column headers correctly
- Release 8.0 [Apr-15, 2004]
- ExpandColWidth extended by second parameter
- the method Sort triggers the OnPercentDone event
- new method LoadLinesFromFile implemented
- ReadFromXMLString implemented
- Mouse wheel support implemented
- OnPercentDone event for XML read/write operations implemented
- ColumnAlignment implemented
- new property DefaultValue implemented
- bug fix: umlauts are now handled correctly when storing the contents as XML data
- bug fix in AutoColWidth fixed which caused wrong column widths with checked columns
- bug fix: method AsNumber does not crash if called with strings containing a comma instead of a decimal dot
- bug fix: HTML-entities are now displayed correctly
- bug fix: OnRequestEditFormat now passes correct column number
- Release 7.2 [Mar-23, 2003]
- REPLIST is now part of GuiPack
- new property ColumnFormat allows to set default format for editing
- EditRowEntries, OnRequestEditOptions provide a convenient means to edit all cells of a row
- Release 7.0 [Sep-15, 2002]
- available for Delphi™ 7.0
- the unit is now CLX compatible
- handling of SuppressPaint improved
- new method CopyToClibBoard creates text copy of selected cells on the clipboard
- bug fix: check boxes can now be unchecked in seletect fields again
- bug fix: AutoColWidth now works correctly
- Release 6.5 [May-28, 2002]
- available for C++Builder™ 6.0
- sorted column is now indicated by small triangle in the header field
- check boxes of selected rows now use same color as text
- ColumnIndex implemented
- property DataID implemented
- OnDblClick is now only triggered if mouse is within cell range
- new properties InterRowIndicatorPos, InterRowIndicatorColor and InterRowIndicatorWidth
- InsertRow appends empty row if parameter is larger than current number of rows
- InsertRow resets sorted column indicator (LastSortColumn)
- InsertRow returns row number of actually inserted row (important for inserting rows with a row index higher than NrOfRows)
- Highlighting is now again adjusted in MouseDown event (for drag and drop compatibility)
- TReportListView is now descendant of TCustomDrawGrid (was TGrawGrid before)
- NrOfRows can now be set to zero
- bug fix: AutoColWidth now correctly adjusts width of checked columns
- bug fix: TopRow and LeftCol cannot be set to invalid values anymore
- bug fix: NrOfColumns cannot be set to zero any more
- bug fix: OnSelectCell is now triggered correctly
-
Release 6.0 [Aug-06, 2001]
- available for Delphi™ 6.0
- RemoveRow now clears all elements of row if called with last row in RepList
- NumSelectedRows, NumSelectedColumns implemented
- ExpandColWidth implemented
- Assign method implemented
- new methods ReadFromXMLStream and WriteToXMLStream implemented
- new property ColumnIsPwd implemented
- new property Comment implemented
- bug fix: LoadfromXMLFile does not crash if file is not available
- bug fix: OnSetEditText and OnGetEditText are now triggered correctly
-
bug fix: invalid selection does no longer create "grid out of range" error
-
Release 5.5 [Jun-09, 2000]
- available for C++Builder™ 5.0
- Arrows, Home, End and Page Up/Dwn keys move now selection AND highlighted row
- Highlighting is now adjusted in MouseUp event
- Sorting by mouse click on header now displays an hourglass cursor
- inherited OnDrawCell event is now executed
- property IsCheckedColumn introduced
- property ElemChecked implemented
- event OnCheckedChange implemented
- property ColumnEditable implemented
- selection of rows is now possible only with left mouse button
- InPlaceEditor is now publicly available
- selection of multiple columns implemented (array property ColumnSelected)
- properties ColorSelectedRow, ColorSelectedRowText replace ColorSelected and COlorSelectedText
- properties ColorSelectedCol, ColorSelectedColText implemented
- properties ColorSelectedBoth, ColorSelectedBothText implemented
- method DeselectAllColumns implemented
- functions FirstSelectedColumn and FirstSelectedRow implemented
- all colors are set to clInActiveCaption if Enabled = False
- methods SelectAllColumns and SelectAllRows implemented
- event OnSelectedChange implemented
- new methods SaveAsXMLFile, WriteToOpenXMLFile, LoadFromXMLFile and ReadFromOpenXMLFile
-
bug fix: scrollbars are now correctly spelled (and
thus available in C++Builder™ without modification of the hpp file)
-
Release 5.0 [Oct-09, 1999]
- REPLIST is now available for Delphi™ 5.0 (as part of the SDL Component Suite 5.0)
- PopupMenu is now available
- ScrollBars are now available
- properties ColorHigh, ColorHighText, HighLightRow, and HighLightColumn implemented
- property HighLightBold implemented
- property AsNumber implemented
- bug fix: property NrOfRows cannot be set to zero any more,
- property LastSortColumn implemented
- property LastSortOrder implemented
- property TopRow, LeftCol, VisibleColCount, and VisibleRowCount are now available
- array property RowSelected implemented
- selection of multiple rows implemented (property RowSelectMode)
- properties ColorSelected, ColorSelectedText implemented
- InsertRow implemented
- method DeselectAllRows implemented
- TReportListView is now decendant of TDrawGrid ---> drag is now available
- bug fix: RemoveRow now works correctly with sorted string arrays
-
DblClick event is no longer triggered if clicked into column header section
-
Release 1.0 [Apr-11, 1999]
- first version to be released