lightweight &
grid / tabular control

Get free trial

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

We are pleased to present the TeeGrid Component Library for VCL/FMX. Please take a look around and feel free to download the BETA version and take it for a spin!    Here's a link: Pre-release version of TeeGrid at

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 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 to you

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 / Tabular control

Written from scratch in 2016 (not derived from TCustomGrid or TGrid) to take advantage of all that's fast in Delphi!
You can download a pre-release version of TeeGrid here.


TeeGrid is fully compatible with VCL and FMX offering you the means to take common core code for gridding on Windows, Android and iOS/OSX. TeeGrid
ships with some default themes to optionally custom match to each environment.


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.

New and improved features

(Current build: v0.2 Beta, Other Version history)

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;

vcl / fmx *BETA news

Previous vcl / fmx *BETA news

TeeGrid Component for Delphi VCL and FMX

Steema is pleased to present the TeeGrid Component Library for Embarcadero RAD Studio, Delphi and C++, VCL and Firemonkey frameworks and Lazarus FreePascal.

November 28, 2016

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