SDL Component Suite - RepList

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.

 

Free Sample Programs

RepListv Shows the capabilities of the unit REPLIST. You can add 1000s of additional entries to see how fast TReportListView is. 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 12.0   [Dec-12, 2023]
     
  • 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]
     
  • Release 9.7   [May-31, 2010]
     
  • 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