Vittix.DBGrid is a modern, feature-rich replacement for Delphi's standard TDBGrid, built for professional VCL applications that need advanced data visualization, extensibility, and performance.
Example showing sorting, filtering, footer aggregations, and column chooser enabled.
- Multi-column sorting engine
- Advanced filtering with popup UI
- Aggregation engine (SUM, COUNT, AVG, MIN, MAX)
- Footer panel with live calculations
- Runtime column chooser
- Custom in-place editors
- Controller-based architecture
- Optimized for large datasets
- Pure Object Pascal (Delphi VCL)
The component is delivered using Delphi runtime and design-time packages.
VittixDBGridControllerR.dpk
Contains all runtime logic required by applications:
- Core
TVittixDBGridimplementation - Sorting engine
- Filtering engine
- Aggregation engine
- Footer panel logic
- Column metadata and controller logic
- Custom editors
- Export engine and dialogs
This package must be included with your application.
VittixDBGridControllerD.dpk
Provides IDE integration and component registration:
- Registers
TVittixDBGridin the Tool Palette - Enables design-time support
- Depends on
VittixDBGridControllerR.dpk
Vittix.DBGrid.pasVittix.DBGrid.Controller.pasVittix.DBGrid.ColumnInfo.pasVittix.DBGrid.ColumnChooser.pasVittix.DBGrid.Sort.Engine.pasVittix.DBGrid.Filter.Engine.pas- Filtering engineVittix.DBGrid.Filter.Popup.pas- Filter popup UIVittix.DBGrid.Aggregation.Engine.pas- Aggregation engineVittix.DBGrid.FooterPanel.pas- Footer renderingVittix.DBGrid.Editors.pas- Custom editorsVittix.DBGrid.Export.Engine.pas- Export engineVittix.DBGrid.Export.Dialog.pas- Export dialogVittix.DBGrid.Reg.pas- Design-time registration
- Delphi 10.3 or newer
- VCL framework
Vcl.DBGridsTDataSetdescendants such as FireDAC, dbExpress, BDE, ClientDataSet, and third-party datasets
- Open the runtime package:
VittixDBGridControllerR.dpk
Build the package.
- Open the design-time package:
VittixDBGridControllerD.dpk
Install the package.
- Restart Delphi.
The Vittix.DBGrid component will appear in the Tool Palette.
- Add the source folder to the Library Path.
- Add the required units to your project.
- Compile.
Manual installation does not include design-time support.
uses
Vittix.DBGrid;
var
Grid: TVittixDBGrid;
begin
Grid := TVittixDBGrid.Create(Self);
Grid.Parent := Self;
Grid.Align := alClient;
Grid.DataSource := DataSource1;
end;TVittixDBGrid exposes a single persistence root plus per-feature file overrides:
PersistenceRootPathLayoutStorageFileNameChooserStateFileNameFilterHistoryFileName
Use PersistenceRootPath when you want one folder for all saved grid state. Use the per-feature file properties when you want to direct a specific area to an explicit file.
Current behavior:
- explicit file properties take precedence when set
PersistenceRootPathacts as the shared fallback base- the component keeps persistence wiring internal; application code configures only
TVittixDBGrid
The current chooser and popup surfaces now include a few small but useful affordances:
- chooser search supports multiple terms, a live match summary,
Ctrl+Ffocus,Escclear, andCtrl+Up/Ctrl+Downreorder - filter popup supports
Entercommit,Esccancel, scoped history, distinct-value restriction, andNot Between - footer popup exposes clear-current and clear-all actions, plus keyboard accelerators for those actions
For testability, several of these surfaces expose read-only summary helpers on the corresponding classes. They are intended for regression coverage and diagnostics, not as a new public UI contract.


