sgcGrid Feature Matrix
Everything sgcGrid does, grouped by task, with a link to the help topic of each feature. The same model drives the VCL, FireMonkey, WinForms, WPF and Avalonia grids.
Everything sgcGrid does, grouped by task, with a link to the help topic of each feature. The same model drives the VCL, FireMonkey, WinForms, WPF and Avalonia grids.
6 features
24 features
4 features
22 features
11 features
3 features
8 NuGet packages
Online help and PDF manuals
Registered marks the features that are in the Registered and Trial editions and not in the free Community edition. ~ marks a feature that Community has in part, with the difference below it.
Every row links to its help topic. The Community column shows what the free .NET Community edition includes; everything is in Registered and Trial.
Column filters, the filter row, the find panel, the column chooser, column reordering, best fit, layouts, multi-selection, bands, cell types, DataSet editing, paste, undo and the sgcEditors cell editors are in the VCL and FireMonkey grids for Delphi and C++ Builder and in the WinForms, WPF and Avalonia grids for .NET, with the same split between Community and Registered, described in Editions. In .NET, DataSet editing writes back to a DataTable, AddLookup adds the lookup columns, and SyncCursor is Delphi only.
| Feature | Details | Community | Help |
|---|---|---|---|
| Live updates from any thread | Data.AppendRow and Data.UpdateRow are thread safe. Update one field or many by key, and BeginUpdate and EndUpdate group a burst into one repaint, paced by MaxFPS. | Help | |
| Flash on change | Changed cells flash green when a value goes up and red when it goes down, then fade out. Tail mode keeps the newest rows of a log or a feed in view. | Help | |
| Virtual mode | Stores no rows: VirtualRowCount sets the count and OnGetValue returns each painted value, so a million rows cost as much as fifty. | Help | |
| ISA-18.2 alarm list | TsgcGridAlarmModel keeps the alarms of an HMI with the ISA-18.2 states (unacknowledged active, acknowledged active, unacknowledged return to normal, normal, shelved and suppressed) and priorities 1 to 4. The application calls RaiseAlarm and ClearAlarm, the operator uses Acknowledge, AcknowledgeAll, Shelve and Unshelve, and FilterPriorities, FilterStates and FilterText filter the list, which exports as JSON or CSV. TsgcGridAlarmLink shows it in a grid, one row per tag, with priority colours and blinking unacknowledged rows, and TsgcVCLGridAlarmMenu adds the context menu (TsgcFMXGridAlarmMenu on FireMonkey, and WinForms, WPF and Avalonia menus in .NET). | Help | |
| Alarm acknowledge log | Every acknowledge, shelve, unshelve, suppress and unsuppress, and every shelve that expires, adds an entry with the time and the user to Log and fires OnLog, for example to write it to a database. SaveToJSON and SaveToCSV save the log. | Registered | Help |
| Log viewer | TsgcGridLogModel keeps log lines with a time, a level from trace to fatal, a source and a message in a ring buffer, and worker threads append lines directly. TsgcGridLogLink shows them in a grid in virtual mode, coloured by level, filtered by level, source and text, with highlighting rules, a follow tail that stops when the user scrolls up, pause and resume, and export to text, JSON and CSV. | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| Sorting | Sort by several columns with SortOrder and SortIndex; Ctrl and click adds a column. The sort is stable. | Help | |
| Filtering | FilterText keeps the rows that contain a text in any visible column, and OnFilterRow adds custom rules. | Help | |
| Selection and keyboard | Row or cell selection with SelectionMode, keyboard navigation, and Ctrl+C copies as tab separated text. The selection follows its key. | Help | |
| Column resizing | Users drag the header edge to resize a column, never below its MinWidth; OnColumnResized reports it. | Help | |
| Columns that fill the width | AutoFitColumns shares the grid width among the columns in proportion to their widths, Column.AutoFit False keeps a fixed width, and MaxWidth caps a column when it is resized or fitted. | Help | |
| Frozen columns | FrozenColumns keeps the first visible columns in place while the rest scroll; header, footer and group summaries follow. | Help | |
| Conditional formatting | Format rules colour a cell or the whole row when a value matches a condition, with translucent colours that tint the cell over its background. | Help | |
| Font styles and icon sets | Format rules set italic, underline and strikeout as well as bold, and OnGetCellFont sets the font style and size of any cell. AddIconSet adds arrows, circles, flags or check marks from two thresholds, and a rule can show an icon or an image of your own. | Help | |
| Right to left (Arabic and Hebrew) | Columns flow from the right with frozen columns at the right edge; the scroll bar, tree and group indent, chevrons, header icons, footer and in place editor are mirrored. Numbers and dates stay left to right runs. SaveToXLSX (Registered) writes a right to left sheet, also through TsgcGridXLSXWriter.RightToLeft. | Help | |
| Column filter | A funnel in each header (ShowFilterButtons) opens a popup with the distinct values of the column and their counts, a search box and up to two typed conditions joined by And or Or. | Help | |
| Filter row | ShowFilterRow adds a row under the header that filters each column while the user types, with an operator per column in FilterRowOperator. | Help | |
| Date periods | Date columns filter by today, yesterday, this or last week, month or year, and the last N days, in the column filter and the filter row. FirstDayOfWeek sets the week start, which follows the locale by default. | Help | |
| Find panel | Ctrl+F or ShowFindPanel highlights the text in every cell, F3 and Shift+F3 move between matches, and FindOnlyMatches hides the other rows. | Help | |
| Column chooser and header menu | A right click on a header sorts, groups, fits widths, filters and opens the column chooser, a popup with one check box per column. ShowColumnChooser opens it from code. | Help | |
| Header images and buttons | HeaderImageIndex shows an image before the caption, HeaderButton adds a button that raises OnHeaderButtonClick, and OnHeaderClick can skip the sort of a header click. | Help | |
| Column reordering | Users drag a header to move its column, within its side of the frozen columns and within its bands; OnColumnMoved reports the move. | Help | |
| Best fit | A double click on the header edge, or BestFitColumn and BestFitColumns, fits the width to the caption and up to 1,000 sampled rows. | Help | |
| Layout persistence | SaveLayoutToString, SaveLayoutToStream and SaveLayoutToFile keep column order, widths, visibility, sorting, grouping, column filters and bands as versioned JSON, and the Load methods restore them. | Help | |
| Automatic layouts | With AutoSaveLayout the grid saves its layout when it closes and restores it on the next run, in a file per grid or through OnSaveLayout and OnLoadLayout. Reset layout in the header menu brings back the design time columns. | Help | |
| Multi-selection | gsmMultiRow selects any set of rows and gsmCellRange one range of cells, with Ctrl, Shift and Ctrl+A. The selection is kept by row key, and Ctrl+C copies it as tab separated text. | Help | |
| Row header | RowHeader adds a strip left of the rows with the record indicator, row numbers and a check box per row, and the corner check box selects or clears every row. SelectionColor and SelectionTextColor set the selection colours. | Help | |
| Row drag and drop | RowDragMode drags the selected rows to another control, and on VCL grdOLE drops them in other applications such as Excel as text, CSV and an HTML table. OnStartRowDrag can cancel a drag. | Help | |
| Card view | With ViewStyle set to gvsCard every row is a card with an optional caption bar, an optional image and one line per visible column. The cards show the same rows as the table, so sorting, filters, the find panel, selection, editing and server mode work in both views. CardOptions sets CaptionField, ImageField, CardWidth, CardColumns and the spacing. The card view does not group. | Registered | Help |
| Card view keys and mouse | Arrow keys move between cards, Home and End go to the first and last card of a band, Tab moves between the fields of a card, F2 edits a field, and a right click on a field caption opens the column menu to sort and filter without the header. | Registered | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| Grouping | Group by one or more columns with GroupBy or by dragging headers onto the group panel, with nested, collapsible group rows. | Help | |
| Summaries | Sum, Count, Average, Min and Max with SummaryType, in every group row and in the footer, formatted with SummaryFormat. | Help | |
| Tree rows | Hierarchies from a key and a parent column (Tree.KeyField, Tree.ParentField), with the expanded state kept per key. | Registered | Help |
| Master detail | A detail band of related rows under each expanded master row, filled from a TsgcGridDataStore, a grid or OnGetDetailData. | Registered | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| In-place editing | Edit cells with a text editor or a pick list combo box, with OnValidate, OnEditError and OnEdited. | Registered | Help |
| DataSet binding | TsgcGridSource_DataSet fills a grid from any TDataSet, creates the columns with AutoColumns and, with LiveUpdates, follows every Append, Edit and Delete. In .NET the same source reads a DataTable. | Help | |
| DataSet filter and sort | With ApplyFilter the DataSet keeps only the rows the grid shows, so other controls on it see the same rows, and OnApplySort passes the grid sort as field names for your query. In .NET the DataTable view follows the grid filter. | Help | |
| Server mode | A provider component reads one page of rows at a time, and the data source evaluates the sort, the column filters, the filter row, the find text, the footer summaries and the row count, so a table of millions of rows opens as fast as one of fifty. Rows not loaded yet show placeholder bars; edits are written back through the provider. Tree rows and detail bands are not available in server mode, and the filter popup shows no row counts. | Registered | Help |
| Server mode providers | TsgcGridServerProvider_DataSet builds the SQL for SQLite, SQL Server, PostgreSQL, MySQL, Oracle, Firebird, InterBase or a generic dialect and runs it through any query component, such as FireDAC, dbExpress, ADO, IBX, UniDAC or Zeos. In .NET, TsgcGridServerProvider_Queryable reads any IQueryable and TsgcGridServerProvider_AdoNet any ADO.NET connection. TsgcGridServerProvider_Callback serves any other source from events, answered from any thread. | Registered | Help |
| Server grouping | Grouping in server mode runs one GROUP BY per level: the groups come with their row counts and summaries, and the children of a group load the first time it is expanded. MaxGroups limits the groups listed under one parent. | Registered | Help |
| Import from TDBGrid (VCL) | At design time, the Import columns from DB grid command of the grid context menu copies the columns, the DataSet link, the position and the events of a TDBGrid, and lists what it could not copy. | Help | |
| ItemsSource and MVVM binding (.NET) | TsgcWpfGrid and TsgcAvaloniaGrid show the items of ItemsSource, any IEnumerable, with AutoGenerateColumns, KeyMember and a two way SelectedItem. In WPF the sort, the filter and the grouping of an ICollectionView apply, and IsSynchronizedWithCurrentItem follows its current item. TsgcWinFormsGrid binds DataSource and DataMember like the DataGridView. With ItemsWriteBack the edits, inserts and deletes go back to the items. | ~Community shows and follows the bound items. ItemsWriteBack is Registered. | Help |
| Columns in XAML and in the designer (.NET) | TsgcWpfGridColumn and TsgcAvaloniaGridColumn elements inside the grid declare the columns, with FieldName (dotted paths such as Customer.Country), Caption, DataType and DisplayFormat. In WinForms the Visual Studio designer, on .NET Framework and on .NET 8 or later, edits Columns with a smart tag and a collection editor, and an empty grid shows sample rows in the designer and in the WPF and Avalonia previewers. | Help | |
| JSON and CSV | sgcGrid_IO loads and saves the rows as JSON or CSV (RFC 4180) from strings, streams and files, also on Linux64. | Help | |
| Excel export | SaveToXLSX writes an Excel workbook with column widths, number formats, cell formats, frozen panes, the group or tree outline and SUBTOTAL formulas. In Excel mode it writes every sheet with its formulas and their computed values. | Registered | Help |
| Excel mode | With ExcelMode the grid works as a light spreadsheet: range selection with Ctrl+C, a fill handle that continues series and shifts formula references, and formulas with A1 references, references to other sheets and SUM, AVERAGE, MIN, MAX, COUNT, IF, ROUND and ABS. LoadFromXLSX opens an Excel workbook, every sheet with its formulas and cell formats, with no external library. | Registered | Help |
| Cell formatting | Bold, italic, underline, strike out, font size and colour, fill colour, horizontal and vertical alignment, word wrap, number format and borders per cell, set with FormatSelection, ToggleSelectionFontStyle or Ctrl+B, Ctrl+I, Ctrl+U and Ctrl+5 in Excel mode. The formats are stored with the data, every change is one undo step, and SaveToXLSX and LoadFromXLSX keep them. | Registered | Help |
| Sheets | Several sheets in one grid with AddSheet, RenameSheet, DeleteSheet, MoveSheet and ActiveSheet, and with ShowSheetTabs a tab strip that switches, adds, renames and reorders them. Formulas read other sheets with references such as Orders!E1:E20 or 'Q4 Notes'!B1, and a rename rewrites them. | Registered | Help |
| Column formulas | A column Formula such as =C1*D1, written for row 1, computes every row of a read only column, on in-memory data, in virtual mode and over a TsgcGridSource_DataSet. In virtual mode the formula texts that OnGetValue returns are evaluated too. | Registered | Help |
| DataSet editing | With WriteBack a TsgcGridSource_DataSet posts grid edits to their records, SyncCursor keeps the current record and the focused row together, and AllowInsert and AllowDelete add and delete records. Lookup fields are edited as pick lists. | Registered | Help |
| Clipboard paste | Ctrl+V pastes tab separated text from Excel into a cell range. Every value is converted and validated before anything is written, and the paste is one undo step. | Registered | Help |
| Undo and redo | Ctrl+Z and Ctrl+Y undo and redo cell edits and pastes by row key, up to UndoLimit steps. | Registered | Help |
| Cell editors | EditorKind picks a date, time or date and time picker, a spin edit, a colour picker or a token edit from sgcEditors, and OnCreateEditor puts any control of your own in a cell. | Registered | Help |
| Memo and lookup editors | gedMemo edits long text on several lines, and gedLookup picks a value from a list with several columns, filled from LookupItems or the lookup field of a DataSet. | Registered | Help |
| Printing and print preview | Print and ShowPrintPreview print every row as the grid shows it, filtered, sorted and grouped, with the band and column headers on every page and only whole rows on a page. PrintSettings sets the paper, orientation, margins, scaling, header and footer once for the printer, the preview and the PDF. In every edition, on VCL, FireMonkey, WinForms, WPF and Avalonia (FireMonkey prints on Windows and macOS). | Help | |
| Accessible PDF export, PDF/UA and PDF/A (with sgcPDF) | ExportToPDF writes vector pages with embedded fonts and searchable text, and every page is a real table with header cells for screen readers. The file is a tagged PDF/UA document by default, and PDFALevel adds PDF/A-2a or PDF/A-3a. Needs the sgcUIPDF bridge and a licensed sgcPDF (esegece.sgcUICore.sgcPDF in .NET). | Registered | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| Themes | Light and dark themes shared with every sgcUI product: Theme, AccentColor, row height and density settings. Under the Fluent theme preset the grid takes the Windows 11 colours and the Windows accent colour, and the tag chips take their corners from RadiusChip of the preset (6 pixels in Classic, 4 in Fluent). | Help | |
| Headless rendering | SaveToPNG and SaveToSVG write the current view, and TsgcGridRenderer draws a standalone TsgcGridData to PNG or SVG, also on Linux64. | Help | |
| Charts from the grid | TsgcChartDataSource_Table of sgcCharts plots the grid rows and follows its sort and filter, with no code in between. | Help | |
| Bands | Captions over groups of columns on several levels: Bands holds them and Column.Band places a column under one. | Help | |
| Cell types | CellKind paints a cell as an image from an image list, a progress bar or a line, area or bar sparkline, while the cell keeps its plain value. gcdTags paints several coloured tags in one cell from a separated text value, with automatic theme aware colours or your own colour per tag, a +N chip with the full list as a hint, and a filter by tag. | Help | |
| Check and link cells | TrueValue and FalseValue show a check box in a column that stores values such as S and N, and BooleanFields sets them on a DataSet source. Toggling the box needs the Registered edition. gcdLink shows the text as a link that raises OnLinkClick. | Help | |
| Images from BLOB fields | A gcdImage column on a BLOB field draws the picture stored in it, OnGetCellImage supplies any other image, and ImagePreview shows a larger copy when the mouse rests on the cell. | Help | |
| Multi-line headers and rows | HeaderLines and RowLines make the header and the rows several lines tall, and WordWrap wraps the text of a column. | Help | |
| Cell and header hints | ShowTruncatedHints shows the full text of a cell or a caption that does not fit as a hint, and OnGetCellHint sets your own hint for any cell. | Help | |
| Custom cell drawing | The OnCustomDrawCell event gives you the canvas and the cell rectangle, and lets you keep or skip the default content. It also runs when printing and exporting to PDF. OnRenderError reports an exception raised while the grid paints. | Help | |
| Accessibility | Exposed to UI Automation as a table with column headers, rows and cells, the focused cell, the selection, sorting, filtering, grouping and tree rows, the API that screen readers such as Narrator and NVDA use. Filtering, grouping and column moves have keyboard alternatives (column width resizing needs the mouse), the focus ring is always visible and Windows high contrast is followed. On by default on VCL (Delphi 7 to 13), FireMonkey on Windows, WinForms, WPF and Avalonia. | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| Ask your grid | TsgcGridAI turns a question in plain language into filters, sorts and row highlights. With no provider, a local rule based parser answers with no network and no API key. With a provider, any LLM answers, and the rule based parser takes over when the call fails or the answer does not validate. | Help | |
| AI query bar (VCL and FireMonkey) | TsgcVCLAIQueryBar and TsgcFMXAIQueryBar, FireMonkey on Windows, macOS, iOS and Android: type a question, press Enter, read what was applied, Cancel a running question and Undo the last answer, with recent questions and suggestions. Works with the keyboard, screen readers, high contrast and right to left layouts. | Help | |
| AI query bar (WinForms, WPF and Avalonia) | TsgcWinFormsAIQueryBar, TsgcWpfAIQueryBar and TsgcAvaloniaAIQueryBar do the same in .NET, with the light or dark theme of the host. | Help | |
| Any LLM | TsgcUIAIEventProvider hands each request to your own code in its OnRequest event, so any AI service, model or on premises server can answer. In .NET, RequestAsync takes an async handler. | Help | |
| sgcWebSockets AI provider | TsgcUIAIChatProvider of the sgcUICoreWS bridge uses the TsgcAIChat component of sgcWebSockets on every platform. In .NET, the esegece.sgcUICore.sgcWebSockets package. Needs a registered sgcWebSockets. | Registered | Help |
| Privacy | Only the question and the field catalog are sent: names, captions, types and up to 3 sample values per column by default (MaxSampleValues, SendSampleValues), never the rows. OnBeforeAsk can edit or cancel each request. | Help |
| Feature | Details | Community | Help |
|---|---|---|---|
| Live feeds | The sgcGridWS bridge adds WebSocket, MQTT and SSE feed sources that write incoming messages into the grid. Needs sgcWebSockets. | Registered | Help |
| Live logs | The WebSocket, MQTT and SSE live sources of the sgcUICoreWS bridge append log lines to TsgcGridLogModel from JSON messages (append, batch, clear), and a burst from a socket thread costs one visit to the main thread. ApplyMessage takes the same messages from your own code. Needs sgcWebSockets. | Registered | Help |
| Ask your grid with an assistant | TsgcGridAIQuery, the earlier bridge component, answers through a TsgcHTMLAIAssistant. New projects can use TsgcGridAI with TsgcUIAIChatProvider. | Registered | Help |
| Capability | sgcGrid | Stock Delphi controls |
|---|---|---|
| Update rows by key from a worker thread, without Synchronize | — | |
| Changed cells flash and fade | — | |
| Format rules on cells or whole rows | — | |
| Grouping with a group panel, group and footer summaries | — | |
| Tree rows and master detail bands | — | |
| Database tables of millions of rows paged, sorted, filtered and grouped by SQL on the server | — | |
| Card view of the same rows, with the same sorting, filters and editing | — | |
| Excel workbook export with outline, formulas, cell formats and several sheets | — | |
| Headless PNG and SVG rendering, also on Linux64 | — | |
| Excel style column filter popup, filter row and find panel | — | |
| Column chooser, header menu and layouts saved as JSON | — | |
| Band headers over groups of columns | — | |
| Progress bar, sparkline, image and tag cells without owner draw code | — | |
| Check box columns for any stored values, link cells and pictures from BLOB fields | — | |
| Multi-line headers and rows, header images and buttons, hints for cut text | — | |
| Row header with check boxes and row numbers, row drag and drop to other applications | — | |
| Layouts saved automatically and columns that fill the grid width | — | |
| Paste a cell range from Excel, with undo and redo | — |
Capabilities only, as documented in the help. No performance claims.
The .NET grid is a C# port with the same class names, for WinForms, WPF and Avalonia. Start with the free Community package and move to the Registered packages for every feature.
| Package | Edition | Contents |
|---|---|---|
esegece.sgcGrid.Community | Community (free) | Core library |
esegece.sgcGrid.WinForms.Community | Community (free) | Windows Forms controls |
esegece.sgcGrid.Wpf.Community | Community (free) | WPF controls |
esegece.sgcGrid.Avalonia.Community | Community (free) | Avalonia controls |
esegece.sgcGrid.Rendering.Community | Community (free) | Headless rendering |
esegece.sgcGrid | Registered | Core library |
esegece.sgcGrid.WinForms | Registered | Windows Forms controls |
esegece.sgcGrid.Wpf | Registered | WPF controls |
esegece.sgcGrid.Avalonia | Registered | Avalonia controls |
esegece.sgcGrid.Rendering | Registered | Headless rendering |
esegece.sgcGrid.sgcWebSockets | Registered only | sgcWebSockets bridge |
esegece.sgcUICore.sgcWebSockets | Registered only | sgcWebSockets AI provider (TsgcUIAIChatProvider) |
esegece.sgcGrid.sgcHTML | Registered only | sgcHTML bridge |
Every feature of sgcGrid is documented in the sgcUI help, with one build for each development environment.
Start with the sgcGrid introduction, then follow the quick start and the feature topics.
Delphi →The complete sgcUI help as a PDF file, to read offline or print.
Delphi (PDF) →