Stay in touch

Add your e-mail address here to receive the monthly TMS Software alerts.


Product releases
Product articles
Technical articles
Website changes
Software development


<< >>
February 2016

Thursday, January 21, 2016

Introducing FNC and TTMSFNCChart

As we have been developing UI VCL framework components since 1995 and FireMonkey framework components since 2011, we have recently been doing extensive research on approaches to create visual UI components that would simultanously support the VCL framework and the FireMonkey framework. As a result of this research, we came to the conclusion that the approach for VCL and FMX can also be easily applied to LCL, the component framework that comes with Lazarus.

Doing so offers a number of advantages both for users of the components and the developers of the components. With respect to using the components, the user can seemingly exchange code between a VCL project and an FMX project as the interface and class name of the component is 100% identical. When porting from VCL to FMX or vice versa all code can be shared as-is. Just like you'd write the code in VCL Edit.Text := 'Hello world', you can in exactly the same way do this with a FireMonkey TEdit or LCL TEdit. As with the result of this approach, the UI components also become usable with the LCL framework in Lazarus, this means that writing Pascal based GUI apps with these components also becomes possible for additional operating systems supported by Lazarus/FPC, i.e. Linux and its variants like Raspbian. Also for the development of the components, there are a number of advantages. With a sufficiently abstract layer in place, the component developer can focus on the component UI look & feel and behavior rather than with the particuliarities of each underlying framework. Support and maintance for highly complex components means managing a single code base as opposed to maintaining 3 code bases. This leads to faster development and support and ultimately to more stable code accross 3 frameworks.

For the result achieved, we came up with the name FNC components, which stands for Framework Neutral Components. As a proof of concept, we have now released our first FNC component TTMSFNCChart that supports a mind boggling array of frameworks and operating systems: VCL Win32/Win64 from Windows XP to Windows 10, FMX Win32/Win64, MacOS-X, iOS, Android, LCL Win32/Win64, Mac OS-X, iOS, Android, numerous Linux variants including Raspbian. Oh, and there is an extra benefit, the component is not only usable from Delphi or FreePascal but also from C++Builder. The feature set of the TTMSFNCChart is more or less identical to our FMX chart that includes line,bar, XY-line, XY-scatter, area, stacked bar, stacked area, digital line, pie, spider and donut charts with highly customizable legends, X-axis, Y-axis etc...

You can see the TTMSFNCChart initialized with 100% identical code on a couple of operating systems:

  i,j: integer;
  rng: array[0..2] of integer;
  val: array[1..12] of integer = (15,23,10,5,3,14,33,11,8,19,9,22);
  Caption := 'TMS FNC Chart Demo';

  TMSFNCChart1.Width := 600;
  TMSFNCChart1.Height := 500;


  TMSFNCChart1.Title.Text := 'TMS FNC Chart : sales/month';
  TMSFNCChart1.Title.Font.Name := 'Helvetica';
  TMSFNCChart1.Title.Font.Style := [TFontStyle.fsBold];
  TMSFNCChart1.Title.Font.Size := 14;
  TMSFNCChart1.Title.Font.Color := gcBlue;

  TMSFNCChart1.Series[0].ChartType := ctLine;
  TMSFNCChart1.Series[1].ChartType := ctArea;
  TMSFNCChart1.Series[2].ChartType := ctBar;

  for j := 0 to 2 do
    TMSFNCChart1.Series[j].AutoXRange := arCommon;
    TMSFNCChart1.Series[j].Mode := smStatistical;
    TMSFNCChart1.Series[j].XValues.Angle := -90;
    TMSFNCChart1.Series[j].XValues.Title.Text := 'Months';
    TMSFNCChart1.Series[j].YValues.Title.Text := 'Units';

  TMSFNCChart1.Legend.Font.Size := 14;
  TMSFNCChart1.Series[0].LegendText := 'Retail';
  TMSFNCChart1.Series[1].LegendText := 'Consumer';
  TMSFNCChart1.Series[2].LegendText := 'B2B';
  TMSFNCChart1.Series[0].Markers.Shape := msSquare;
  TMSFNCChart1.Series[2].Markers.Visible := false;

  rng[0] := 70;
  rng[1] := 10;
  rng[2] := 40;

  for i := 1 to 12 do
    for j := 0 to 2 do
      TMSFNCChart1.Series[j].AddPoint(rng[j]+val[i], FormatSettings.LongMonthNames[i]);

The only difference in the project are references to units. For VCL, the unit namespaces are VCL.TMSFNC*, for FMX it is FMX.TMSFNC* and for LCL it is LCLTMSFNC* (as sadly FreePascal doesn't support a dot in the unit names)

Below are a number of screenshots of the chart running in a myriad of operating systems with exactly the same code:

TTMSFNCChart on iOS with FMX framework

TTMSFNCChart on Mac OS-X with FMX framework

TTMSFNCChart on Raspbian with LCL framework

TTMSFNCChart on Ubuntu with LCL framework

TTMSFNCChart on Windows with VCL framework

With this first proof of concept product ready now, we are eager to learn about your interest in this type of components and what other UI components you want to see us developing for FNC. We are curious to see your results bringing Pascal code bases to an amazing and vast number of operating systems and devices.


Bruno Fierens

This blog post has received 20 comments. Add a comment.

Thursday, January 07, 2016

TMS hands-on training day in Meerbusch, near Dusseldorf, Germany

We're pleased to inform that TMS software organizes a new training day on Friday March 11th. Our entire team will be present at the TMS Day in NRW Germany. Get the in-depth information directly from the principal architects of TMS products!

Tentative program

Please also send in the specific topics you want to see covered on this training day so we can finalize this tentative program and fulfill your needs in the best possible way. We suggest to bring your laptop if you want to follow the samples live or if you want one of our experts to have a look at your code or application. For a maximum interactivity, the number of seats will be limited to 30 persons.

Registrations until February 15 - number of seats limited to 30 persons!

The cost of the TMS training day is only 75 EU + VAT. This includes a full day access to the sessions and coffee/drinks during this day. A hot meal is served for lunch. Also, a 20% discount will be offered for NEW licenses for all attendees!


  • Gut Dyckhof, Am Dyckhof 3, 40667 Meerbusch-Büderich - NRW, Germany
  • Very close to exit Meerbusch of the A52 highway
  • Free parking
  • Facilities for hotel rooms at the event are available for international attendees


Nancy Lescouhier

This blog post has not received any comments yet. Add a comment.

Thursday, December 31, 2015

Our little New-Year gift for Pascal developers

On this last day of the year, we'd like to introduce a first version of a little New Year's gift for you, Pascal developers. If you are, like us, excited about Internet of Things, embedded software development, DIY projects, controlling electronics from your code, ... we have for you a first version of our new free & open-source bundle of hardware access components for Raspberry Pi. You can download full source code from here

This is a first small step into making interfacing with all kinds of external electronic devices like sensors, displays, step motor, input devices etc... as easy as setting a few properties or calling a few methods of a class. If you would for example like to measure some analog voltage and display the result on a small LCD display, this becomes as simple as:
  v: integer;
  s: string;
v := TMSLCLAdaADC12B.ReadChannel(0);
s := 'Value: ' + IntToStr(v) + 'V';

At this moment we have components for following Raspberry Pi breakouts and more are coming...

Adafruit 4 digit 7 segment display

Adafruit monochrome 128X32 OLED graphic display

Adafruit 12bit DAC

Adafruit 12bit 4 channel ADC

Adafruit RGB 16x2 LCD + keypad

Adafruit barometric pressure/temperature sensor

We of course also welcome you to contribute to this open-source package. Contact us with your suggestions, feedback, contributions.


Bruno Fierens

This blog post has received 4 comments. Add a comment.

Tuesday, December 15, 2015

This was the month November and December at

Just like September, November & December were again very busy months here at A small overview:

TMS Logging

In the beginning of this month we released TMS Logging v1.0.0.0, a new logging framework that makes use of log levels to output values/objects. We developed TMS Logging to have a cross-platform solution that is flexible, compact and offers informative logs with a minimum amount of log code. TMS Logging is available for XE7 update 1 or newer (due to using the newest Delphi language features extensively) releases and supports VCL Win32/Win64 apps and FMX Win32/Win64/Mac OS-X/iOS/Android apps.

TMS LCL Cloud Pack

Begin November, our TMS Cloud Studio has been extended with TMS LCL Cloud Pack v1.0.0.0 . TMS LCL Cloud Pack offers easy access from Windows, Raspberry Pi, Mac OS-X, Linux applications to cloud services like Amazon, Facebook, Flickr, FourSquare, Picasa, Google, LinkedIn, Twitter,Wunderground weather, YouTube, ... . It offers access to all popular cloud storage services like OneDrive, Box, DropBox, calendering services, push notification services and more...

Watch our twitter account or facebook page for announcements about new developments on LCL components soon!

TMS Hands-on training day

The second edition of the TMS hands-on training day end November was again very successful. It was not only interesting for the attendees, but also for our team! We could talk to our customers face to face, hear stories about their experiences with Delphi, and could see what fantastic applications were developed with TMS components. We also got interesting suggestions on new features and new components some of which already found their way into product releases and others we will definitely work on in 2016. After this successful edition, we can say with certainty we'll be planning more events on TMS tools next year!


We also acquired, a small company focusing on offering zero-client solutions to control a personal computer.

myWebMachine offers great & innovative technology to access your PC literally from anywhere, anytime: a Windows PC can be remotely controlled from another Windows PC, Mac OS-X or Linux computer or from devices such as iPad, iPhone, Android tablet, Microsoft Surface, Smart TV without the need to install any software on the client machine. Using the standard installed browser is sufficient.

If you wish to try out myWebMachine yourself, a free fully functional trial version is available at

TMS iCL v2.8.0.0

Our set of native iOS controls was also extended and improved. There were new capabilities and improvements in TTMSFMXNativeUITableView and a new control was added: TTMSFMXNativeAVPlayerViewController. This new control surfaces the iOS capability to display streaming video content along with system-supplied playback controls. It supports wireless movie playback to AirPlay-enabled hardware such as Apple TV and also the new iOS 9 picture-in-picture view.

TMS Component Pack updates

Our flagship bundle of productivity feature-packed VCL controls for Windows application development got 4! updates in the past 2 months. Our team is day-in, day-out listening to your requests & feedback and added no less than 29 new features and numerous smaller improvements and fixes over the last 4 free updates. And yes, also documentation was extended and samples were improved. Check out the latest version of TMS Component Pack and stay tuned for more new capabilities to be added in upcoming versions.

TMS FMX Chart v1.5.0.0

And finally, this week we released a major update of our cross-platform chart component. In TMS Charts for FireMonkey v1.5.0.0 we've added ctBand support.

Knowledge base alert

We would also like to say a small word about our monthly Knowledge base alert we started with this year. From the positive feedback we received from several subscribers, and for which we want to thank you, we can conclude many of our users appreciated this technical knowledge base alert. We will keep gathering these useful articles about our products and provide them to you via our newsletter. You can always consult these tips at: our via
If you are not yet subscribed, you can add your email address here.

Best wishes for a happy & prosperous New Year from the TMS team!

We can conclude we ended 2015 with some new exciting developments. We're already brainstorming on several things for 2016 and we look forward to be at your service in 2016!


Nancy Lescouhier

This blog post has received 1 comment. Add a comment.

Previous  |  Next  |  Index

Copyright © 1995 - 2016 TMS Software v4.0