All Blog Posts  |  Next Post  |  Previous Post

It's here: TMS FireMonkey cross-platform grid


Monday, July 16, 2012

After many months of research, developing, testing, polishing and documenting, the team at TMS software is proud to announce the availability of our first TMS FireMonkey cross-platform grid!

Ever since Delphi XE2 was released, we regularly received emails from customers asking when our immensely popular VCL component TAdvStringGrid would be available for FireMonkey. Now, TAdvStringGrid is the result of over 15 years of work. It is built specifically for the Windows platform and many of its features are intricately bound to Windows APIs. The FireMonkey framework is based on a completely different architecture and design, so the only answer we could give to these many questions was to wait till we rebuild a new grid from the ground up. A task that would of course take a significant amount of time.

Our team first set out to explore and get acquainted and experienced with the new FireMonkey framework by taking on the development of some smaller lightweight components.Once the team was past the apprentice stage, we started architecting the foundations of the new grid with following requirements in order of priority:

1) fully respect the design principles of the FireMonkey framework: the grid uses FireMonkey objects everywhere and heavily uses styles.

2) cross-platform: like other FireMonkey components, it should be seamless to use the grid on Win32, Win64, Mac OSX and iOS.

3) high performance: grids with 500.000 rows x 10.000 columns should be perfectly usable.

4) LOB feature-rich: focus on offering a wide range of features for typical data presentation & editing in line of business applications.

5) TAdvStringGrid familiarity: focus on a clean intuitively usable & discoverable programmers interface but where possible, make it familiar for VCL grid developers.

Requirement 1 and 2 were given our earlier experience with other FireMonkey component development straightforward. Requirement 3 was by far the hardest. We literally spent weeks on trying to find implementations for achieving an architecture with a high performance that is at the same time as customizable and style-able as a FireMonkey component is supposed to be. Finally, our long experience with TAdvStringGrid also made working on requirements 4 and 5 a bit easier.

So, what feature set made it for v1.0:

  • import and export: CSV, TXT, ASC, HTML, XML, RTF (native),XLS (native), streams
  • clipboard support
  • printing support: print to printer, print to image file, print preview component
  • find & replace including find & replace dialogs
  • various built-in inplace editors: edit, combobox, datepicker, dial, spin, ... and customizable
  • various built-in cell types: text, bitmap, button, checkbox, radiobutton, progressbar, ... and customizable
  • cell merging
  • fixed header rows, fixed footer rows, fixed left columns, fixed right columns
  • column freezing, row freezing
  • cell scrolling & pixel scrolling modes
  • various selection modes: single cell, range, column, row, disjunct column, row, cell
  • sorting: single column & multi column in normal & in grouped mode
  • filtering: programmatic row filtering and filter dropdowns in a column header cells
  • grouping: built grouping with group headers, group summary rows
  • calculations: column calculation results in fixed footer row
  • HTML formatted text in cells, URLs in cells
  • Fine grained control over keyboard & mouse interaction
  • Lots and lots of smaller features
To help users get up to speed fast with the grid, we have included over 10 feature highlighting sample applications and have an over 100 pages PDF developers guide.

What is planned for upcoming updates:
Work has already started for adding full live bindings support and we have already several things working internally. We'll also be looking at inter component drag & drop. TMS Grid Filters will be updated to support the TMS FireMonkey grid and will offer this way also support for native .XLSX file import/export and of course, we look forward to all your feedback, comments and wishes to steer the development of upcoming versions of our FireMonkey grid. We'll introduce very soon a new platform for you to help us prioritizing on features you need the most.

With all the buzz around the new grid, we'd almost forget that some other new components were added to the TMS Pack for FireMonkey: TTMSFMXEdit, TTMSFMXEditBtn and TTMSFMXNavBar. The TTMSFMXEdit is an advanced edit control with configurable edit types, auto completion and lookup dropdown. TTMSFMXNavBar is an Outlook style navigation control.

Download the trial version of the TMS Pack for FireMonkey v1.5 now at: Registered users of TMS Pack for FireMonkey v1.0 or v1.1 receive this update v1.5 free!

Bruno Fierens


This blog post has received 8 comments.

1. Tuesday, July 17, 2012 at 2:02:51 AM

Wow, looks great!
Good to see that component developpers are developing FMX components.

B. Jansen

2. Tuesday, July 17, 2012 at 3:20:56 AM

the most important feature for us is Right to left support, are you planning for this?


3. Tuesday, July 17, 2012 at 3:28:34 AM

The underlying FireMonkey framework has no support for this, hence we can''t do something on the level of our components. If a future FireMonkey framework has support for Right-To-Left, we''ll make our components compatible with it.

Bruno Fierens

4. Tuesday, July 17, 2012 at 7:00:00 AM

The grid is simply awesome, congratulations to all developers involved.
It would be nice to have a design time editor, but I can live without it.
Very good job, thanks!!


5. Tuesday, July 17, 2012 at 2:16:34 PM

Great job, as always!

Would you like to co-sponsor our contest "Absolutely Insane Firemonkey Demo"?

Dmitri Popov

6. Tuesday, July 17, 2012 at 6:49:29 PM

Please contact us by email and inform us about conditions/desires.

Bruno Fierens

7. Wednesday, February 26, 2014 at 11:13:52 PM

Can I link the grid to a dataset ?

You said "Work has already started for adding full live bindings support"

Does that mean that FireMonkey grid currently does not support LiveBindings and can not be linked to a dataset ? I dont mind if I have to link it to the dataset using the old two properties technique (dataset and data field properties in the grid) rather than LiveBindings

Steve Bovin

8. Thursday, February 27, 2014 at 1:34:17 AM

This is already added & available now for quite some time.

Bruno Fierens

Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.

All Blog Posts  |  Next Post  |  Previous Post