Lightweight &
grid / tabular control

Get free trial

The TeeGrid Component for Delphi VCL & FMX offers a very fast grid for your RAD Studio projects.

Take Full Control

TeeGrid installs a palette component to aid designtime configuration. Full 100% TeeGrid source code is available to you as an option.

Easy to use

We think you'll find this is one of the easiest grids around for quick setup to get to and see your tabular data.

Priced Right For You

TeeGrid is agile and its price is light and nimble making it an easy fit in any project's budget.

Steema's commitment

Steema has been publishing Delphi code for you, our customers, for more than twenty years; your satisfaction is of paramount importance to us.

A quick glance

Lightweight and fully-featured Grid control

Grid component written from scratch in 2016 (not derived from TCustomGrid or TGrid) to take advantage of all that's fast in Delphi!
The Grid allows you easily and fast manage information, connect to data sources and display data. Featureset includes locked columns, searching, filtering, sorting and grouping data, master-detail view, draggable selections, grid scrolling.

See examples on GitHub


TeeGrid is fully compatible with VCL and FMX offering you the means to take common core code for gridding on Windows, Android and iOS/MacOS.
TeeGrid ships with some default themes to optionally custom match to each environment.
Now you can use TeeGrid with FMXLinux to port/build your applications to/for Linux with Embarcadero Delphi 10.2 Tokyo.


The TeeGrid "Ticker" component to automatically refresh grid cells when values are updated. VCL, Firemonkey and Lazarus. Delphi and C++, 2009 to Berlin.
Options include FadeColors, Delay, Higher.Color, Lower.Color and RefreshSpeed.

Master-Detail View

The Grid Control supports master-detail view. Any row can be expanded to show a detail sub-grid rows. Detail rows can be displayed in an expandable hierarchical data grid.
Take a look at the Master-Detail FireDAC example.

Rows and Columns

TeeGrid offers many features to manage the rows and columns sizing, formatting and more to your grids;
Locked columns allows to lock a specified number of rows and columns. Any grid column can be locked to a grid edge (left or right).
Column dragging, column headers can be mouse-dragged to move them to new positions in the grid.
Column resizing allows to modify the column width in a grid by dragging the left mouse button in a column header edge.
Horizontal / vertical grid scrolling can be performed to display data using grid scrollbars or arrow keys, mouse-dragging or finger-touch.


New and improved features

(Current build: v1.08, Other Version history)

Full support for Embarcadero RAD Studio, Delphi and C++ Builder including: 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.1 Berlin Update 2, 10.2 Tokyo, 10.3 Rio and Firemonkey framework and Lazarus FreePascal.
(*)TeeGrid does NOT support Delphi / C++ Builder Starter Editions.
TeeGrid is capable of handling a very big number of cells. For example 1 billion cells ( 1000 columns by 1 million rows ).
The only limit is the available memory, (compile for the 64bit platform).
TVirtualData or derived class to automatically create columns and provide cell values.
TeeGrid can be used like a TStringGrid with a TStringsData object:
var Data : TStringsData;
Data:= TStringsData.Create;

// Initialize size
Data.Columns:= 2;
Data.Rows:= 6;

// Set header texts
Data.Headers[0]:= 'A';
Data.Headers[1]:= 'B';

// Fill rows and cells
Data[0,0]:= 'A0';
Data[1,0]:= 'B0';

// Set data to grid
TeeGrid1.Columns.AddColumn('My Column 1').Items.AddColumn('Sub-Column 1')...
Any row can be expanded to show its detail sub-grid rows. The grid Data class must support master-detail relationships.
A TBIGridData class is provided to link TeeBI TDataItem data objects supporting master-detail See "TeeBI_Customer_Orders" example.
Automatic summary "grid bands" can be added to a header or footer, also for "detail" subgrids.

var Totals : TColumnTotals;
Totals:= TColumnTotals.From(TeeGrid1.Data, TeeGrid1.Columns);

Totals.Calculation.Add( TeeGrid1.Columns['Quantity'], TColumnCalculation.Sum);

// Add band to grid footer

// Add also a band with total names
TeeGrid1.Footer.Add( TTotalsHeader.CreateTotals( Totals ) );
Any row might display a grid band above the row. The "band" can be anything, from a simple TTitleBand to a complex group of bands or rows.

var Title: TTitleBand;
Title:= TTitleBand.Create;
Title.Text:='My Rows';
TeeGrid1.Rows.SubBands[23]:= Title;
Default class for cell rendering is TCellRender. Other classes can be used or created to override the default behaviour, like for example to show check-boxes in columns with boolean (True/False) values:

TeeGrid1.Columns[7].Render:= TBooleanRender.Create;
TeeGrid1.Columns[0].FloatFormat:= '0.###';
TeeGrid1.Columns[0].Visible:= False;
TeeGrid1.Columns[0].Items[3].Expanded:= False; // visible, but collapsed
TeeGrid1.Columns[0].Width.Automatic:= False;
TeeGrid1.Columns[0].Width.Value:= 40;
TeeGrid1.Columns[0].Width.Units:= TSizeUnits.Percent;
Dragging the left mouse button in a column header edge resizes it
Scrollbars are automatically displayed when necessary. In Firemonkey they can be customized:

Columns and sub-columns can be re-positioned:

TeeGrid1.Columns[2].Index:= 0; // move 2nd column to first (left-most) position
TeeGrid1.Columns[0].Header.Text:= 'My Column';
TeeGrid1.Columns[0].Header.Format.Font.Color:= TAlphaColors.Red;
TeeGrid1.Header.Hover.Visible:= True;
TeeGrid1.Header.Hover.Format.Brush.Color:= TAlphaColors.Green;
TeeGrid1.Indicator.Visible:= True; // False to hide indicator
TeeGrid1.Indicator.Width:= 20;
// selection
TeeGrid1.Selected.Column:= TeeGrid1.Columns[3];
TeeGrid1.Selected.Row:= 5;

// formatting
TeeGrid1.Selected.ParentFont:= False;
TeeGrid1.Selected.Format.Font.Style:= [TFontStyle.fsBold];
// range selection
TeeGrid1.Selected.Range.FromColumn:= TeeGrid1.Columns[3];
TeeGrid1.Selected.Range.ToColumn:= TeeGrid1.Columns[6];

TeeGrid1.Selected.Range.FromRow:= 10;
TeeGrid1.Selected.Range.ToRow:= 15;
Clipboard.AsText:= TCSVData.From(TeeGrid1.Grid, TeeGrid1.Selected);
TeeGrid1.ReadOnly:= False;
TeeGrid1.Columns[0].ReadOnly:= True;
TeeGrid1.Columns[1].EditorClass:= TCalendarEditor;
TeeGrid1.Rows.RowLines.Visible:= True;
TeeGrid1.Rows.RowLines.Size:= 3;
TeeGrid1.Rows.RowLines.Color:= TAlphaColors.Skyblue;
Cell (or all cells in row) under mouse cursor can be highlighted:

TeeGrid1.Cells.Hover.Visible:= True;
TeeGrid1.Cells.Hover.FullRow:= True;
TeeGrid1.Cells.Hover.Format.Stroke.Size:= 2;
For sub-pixel finetuning, Firemonkey only. VCL always rounds to integer pixels.

TeeGrid1.Header.Height.Value:=124.3; // sub-pixels, decimals
TeeGrid1.Rows.Alternate.Brush.Visible:= True;
TeeGrid1.Rows.Alternate.Brush.Color:= TAlphaColors.Lightcoral;
TeeGrid1.Rows.Alternate.Stroke.Visible:= True;

New License of 2019

TeeGrid Grid component for all VCL and FMX projects under RAD Studio & Lazarus. Includes 100% sourcecode.

Registered product definition
The TeeGrid registered product includes:

  • Full product sourcecode
  • Read/write access to Steema support forums
  • Right to use the Software in commercial applications
  • Access to all sourcecode updates during active subscription period

TeeGrid VCL/FMX for RAD Studio & Lazarus


Upgrade to 2019

Upgrade from
To Version 2019 and one year subscription

Subscription Renewal for 2019

Subscriptions include all major and minor version releases and forum support

One Year support and major version upgrade protection subscription renewal

TeeGrid VCL/FMX for RAD Studio Subscription Renewal

Additional options

VCL / FMX news

Previous VCL / FMX news

Volume discounts

We offer discounts when purchasing more than one license. Discounts are as follows:

  • 2 Licenses: 5% discount
  • 5 Licenses: 20% discount
  • 10 Licenses: 25% discount

The volume discount will be automatically calculated if you are making your order online. You just need to enter the quantity of licenses you want to order. For special requirements, please contact us at

Perpetual Licenses and Subscriptions

Steema Licenses are perpetual and sold on a subscription basis. The subscription period is initially for 12 months, renewable annually and includes access to updates and support forums. Please see the Subscription licensing page for complete details.
When the subscription period expires you can optionally renew your subscription for an additional year at the renewal price. We will notify you via e-mail at least 30 days prior to the expiry date.
If your subscription has lapsed over 30 days, the renewal price will not apply and the cost will be that of a license upgrade price.

If you have a question or require more information, call us at +34 972 218 797 between 9:00h and 17:00h central european time or email