Skip to content

Repository files navigation

Vittix.DBGrid

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.


Screenshot

Vittix DBGrid Screenshot Vittix DBGrid Screenshot Vittix DBGrid Screenshot

Example showing sorting, filtering, footer aggregations, and column chooser enabled.


Features

  • 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)

Package Structure

The component is delivered using Delphi runtime and design-time packages.

Runtime Package

VittixDBGridControllerR.dpk

Contains all runtime logic required by applications:

  • Core TVittixDBGrid implementation
  • 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.


Design-Time Package

VittixDBGridControllerD.dpk

Provides IDE integration and component registration:

  • Registers TVittixDBGrid in the Tool Palette
  • Enables design-time support
  • Depends on VittixDBGridControllerR.dpk

Main Units

  • Vittix.DBGrid.pas
  • Vittix.DBGrid.Controller.pas
  • Vittix.DBGrid.ColumnInfo.pas
  • Vittix.DBGrid.ColumnChooser.pas
  • Vittix.DBGrid.Sort.Engine.pas
  • Vittix.DBGrid.Filter.Engine.pas - Filtering engine
  • Vittix.DBGrid.Filter.Popup.pas - Filter popup UI
  • Vittix.DBGrid.Aggregation.Engine.pas - Aggregation engine
  • Vittix.DBGrid.FooterPanel.pas - Footer rendering
  • Vittix.DBGrid.Editors.pas - Custom editors
  • Vittix.DBGrid.Export.Engine.pas - Export engine
  • Vittix.DBGrid.Export.Dialog.pas - Export dialog
  • Vittix.DBGrid.Reg.pas - Design-time registration

Requirements

  • Delphi 10.3 or newer
  • VCL framework
  • Vcl.DBGrids
  • TDataSet descendants such as FireDAC, dbExpress, BDE, ClientDataSet, and third-party datasets

Installation

Recommended (Package Installation)

  1. Open the runtime package:
VittixDBGridControllerR.dpk

Build the package.

  1. Open the design-time package:
VittixDBGridControllerD.dpk

Install the package.

  1. Restart Delphi.

The Vittix.DBGrid component will appear in the Tool Palette.


Manual Installation (Source Only)

  1. Add the source folder to the Library Path.
  2. Add the required units to your project.
  3. Compile.

Manual installation does not include design-time support.


Basic Usage

uses
  Vittix.DBGrid;

var
  Grid: TVittixDBGrid;
begin
  Grid := TVittixDBGrid.Create(Self);
  Grid.Parent := Self;
  Grid.Align := alClient;
Grid.DataSource := DataSource1;
end;

Persistence Configuration

TVittixDBGrid exposes a single persistence root plus per-feature file overrides:

  • PersistenceRootPath
  • LayoutStorageFileName
  • ChooserStateFileName
  • FilterHistoryFileName

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
  • PersistenceRootPath acts as the shared fallback base
  • the component keeps persistence wiring internal; application code configures only TVittixDBGrid

Chooser, filter, and footer behavior

The current chooser and popup surfaces now include a few small but useful affordances:

  • chooser search supports multiple terms, a live match summary, Ctrl+F focus, Esc clear, and Ctrl+Up / Ctrl+Down reorder
  • filter popup supports Enter commit, Esc cancel, scoped history, distinct-value restriction, and Not 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.

About

Advanced feature-rich VCL DBGrid replacement for Delphi with filtering, grouping, summaries, and multi-format export support

Topics

Resources

Contributing

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages