Blog

All Blog Posts  |  Next Post  |  Previous Post

Visiting the TMS lab day 3: ExtJS & TMS WEB Core

Wednesday, October 3, 2018

TMS Software Delphi  Components

The fact that IDERA acquired the company Sencha behind the ExtJS framework and has now both Embarcadero and Sencha under its umbrella generated also some interest among Delphi developers for this framework. From time to time we get a request if the ExtJS framework can be used from TMS WEB Core. This triggered our team to investigate if this was technically feasible. And after the needed research, we are happy to inform that we managed to integrate a couple of ExtJS controls as proof of concept in TMS WEB Core. Technically this means that we can:

  1. Create the ExtJS control from a Pascal class
  2. Manage the ExtJS control settings via the Pascal class properties
  3. Map class methods on ExtJS control functions
  4. Catch the events triggered by the ExtJS control and route these to the Pascal class events

If this can be technically achieved for one ExtJS control, it typically means that this can be achieved for the full set of ExtJS controls. Further things that are nice to have but need deeper research are: control the ExtJS layouting setup from the Delphi form designer and use the TDataSource & TDataSet based data-binding mechanism also for ExtJS controls like the ExtJS grid.

With what could we better demonstrate this than with the Fishfact dataset, that wonderful dataset we all learned about and loved when it was demonstrated the first time by David Intersimone in 1995 with Borland's Delphi 1.

Here are some nostalgic pictures of these great days:

TMS Software Delphi  Components TMS Software Delphi  Components TMS Software Delphi  Components

Back to 2018 though, where we have an ExtJS button, ExtJS label and an ExtJS grid on the Delphi form designer in the Delphi 10.2.3 Tokyo IDE:

TMS Software Delphi  Components

When dropped on the form, from the ExtJS button OnClick event handler, the Fishfact dataset in JSON format is loaded in the ExtJS grid with the code:

WebEXTJsGrid1.ConnectToJSONUrl('http://www.tmssoftware.biz/tmsweb/fishfacti2.json');
This dataset contains the image URLs to the Fishfact fish images and these are rendered automatically in the ExtJS grid. At runtime, this becomes in the browser TMS Software Delphi  Components

Or of course, you can directly play with this prototype application here live from our website

Summary

ExtJS is a rich JavaScrpt framework with a large set of UI controls. Similar to the ability to use jQuery controls from TMS WEB Core, with some effort, it is also possible to integrate the ExtJS framework with TMS WEB Core. To make it really user-friendly, it is quite some work though to create well-designed Pascal wrapper classes to make the framework and its controls convenient to use from the 100% Pascal based TMS WEB Core framework. We love to hear your voice and your thoughts how much priority we should give to bring integration of the full ExtJS framework in TMS WEB Core. You, the user of TMS WEB Core are behind the steering wheel of the TMS WEB Core Mille Miglia route from Brescia to Rome and back to Brescia.
TMS Software Delphi  Components
You can determine with your vote in what city along our route, you wish to see full ExtJS support.

Lab visit feedback & win!

Our team loves to hear what you think about what is brewing in the lab, how you plan to use the upcoming features, what priority our team should give to it and if you have possibly interesting and/or creative ideas to make this even more powerful for Delphi developers. To reward your interaction & feedback, we'll pick 3 blog comments on October 15 that we liked the most and first prize is a free TMS WEB Core license, the 2nd and 3rd prize is a 50% discount coupon on TMS WEB Core. Let yourself hear to increase your chances!

Get started

Meanwhile, you can go ahead and explore the new & exciting territories of web client development that become available for Delphi developers with TMS WEB Core! You can download the trial version that is generally available, go ahead with the standalone version you purchased or with TMS WEB Core and additional tools that are all included in TMS ALL-ACCESS. Or you can come to see TMS WEB Core and discover and discuss it face to face with Bruno Fierens of tmssoftware.com showing it in London on October 23, 2018. Note also that in October, you can still take advantage of purchasing TMS WEB Core at launch price from 295EUR for a single developer license. From Nov 1, regular pricing will be active on TMS WEB Core (395EUR for a single developer license).

Bruno Fierens




This blog post has received 8 comments.


1. Wednesday, October 3, 2018 at 4:51:53 PM

One of the other ExtJS/Delphi solutions on the market currently requires a Windows box. I know it''s just proof-of-concept at this point, but will TMS WEB Core with ExtJS run on a Linux box?

Greg Bishop


2. Wednesday, October 3, 2018 at 5:27:46 PM

Since TMS WEB Core generates the browser web client app, it is a set of HTML/JS/CSS files that can be deployed on any HTTP(s) web server, i.e. also on Linux. You could then connect to an TMS XData backend for example that runs on Linux.

Bruno Fierens


3. Wednesday, October 3, 2018 at 9:18:11 PM

Great labs days!!!. I like a lot the evolution of TMS Web Core.

I would like to see a sample of using TMS Web core with sqlite, any TDataSet descendant to manage sqlite?.

Also a bit of theory about how to wrap external js libraries with TMS Web core.

Thank you for your work.

Manuel


4. Wednesday, October 3, 2018 at 9:23:44 PM

Another extjs-based framework has a lot of cool features, such as direct search on the grid, how could these customizations be made?

SILVA LEANDRO


5. Wednesday, October 3, 2018 at 10:47:22 PM

If we extend the Pascal wrapper class we have created for this prototype to enable options such as this search, it should be feasible. Alternatively, it can also be directly be accessed by JavaScript to avoid the effort to extend the Pascal wrapper class.

Bruno Fierens


6. Wednesday, October 3, 2018 at 11:39:10 PM

This would be a great addition to the product would a separate license be required for Extjs?

McMillion Kenneth


7. Thursday, October 4, 2018 at 8:45:59 AM

If we add support for using the framework directly from the IDE for a TMS WEB Core application, the use of the framework itself is still subject to the licensing conditions of this framework.

Bruno Fierens


8. Thursday, October 4, 2018 at 1:06:05 PM

This is the 2nd great nws in a row!

As my recent projects are powered by mORMot server-side, and nowdays a WEB client interface is a must, being able to develop both using Lazarus is indeed a big step toward simplifying the toolchain used.
And as you point out, I will be able to do so on my beloved linux box! (eg no more forced to use an OS with built-in spywhere)

A win-win, if you ask me!


Guido Aspesani




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