VCL

What’s new in TMS FNC Maps v2.0

Introducing the TTMSFNCRouteCalculator component, OpenLayers polyline labels and Google Maps geodesic polylines with the release of TMS FNC Maps v2.0. Route calculator with map interaction The new TTMSFNCRouteCalculator component lets you create and edit routes based on existing directions and geocoding services. Routes can also be imported from GPX and exported to GPX. The TTMSFNCRouteCalculator allows you to create a new route, add, update and remove waypoints or segments. This standalone component can be used to manage routes programmatically, then save or export your routes for later use. The following directions & geocoding services are supported: Azure, Bing, Google, Here, MapBox In combination with TTMSFNCMaps routes can be created, edited and displayed by interacting with the map.Simply assigning a TTMSFNCRouteCalculator to the TTMSFNCMaps component will enable the map interaction as well as extra methods and events. TMSFNCRouteCalculator1.Active := True; TMSFNCMaps1.RouteCalculator := TMSFNCRouteCalculator1; The following mapping services are supported: Google Maps, Here, OpenLayers    The steps below require no additional code at all, this is done by interacting with the map only. Now the first step is to pick a start location with a single click on the map. The second click will set the first waypoint for your route Then every subsequent click will add a new waypoint Drag and drop an existing segment to insert a new waypoint Drag and drop an existing waypoint to a new location Waypoints and segments can also be selected and optionally removed from the route OpenLayers polyline & polygon labels It’s now possible to associate a label text with a polyline or polygon in TTMSFNCOpenLayers. This feature is currently only available for: OpenLayers This sample demonstrates how to add a label text to an existing polyline, configure the label’s appearance and position, then make sure the polyline is updated on the map. TMSFNCOpenLayers1.BeginUpdate; TMSFNCOpenLayers1.Polylines[0].&Label.Text := ‘Route from New York to Washington’; TMSFNCOpenLayers1.Polylines[0].&Label.FontColor := gcRed; TMSFNCOpenLayers1.Polylines[0].&Label.FontSize := 18; TMSFNCOpenLayers1.Polylines[0].&Label.OffsetX := 170; TMSFNCOpenLayers1.Polylines[0].Recreate := True; TMSFNCOpenLayers1.EndUpdate; Google Maps geodesic polylines Another new features is the possibility to display geodesic polylines with Google Maps. This feature is currently only available for : Google Maps Just set the polyline’s Geodesic property to True to make it display as a geodesic line. TMSFNCGoogleMaps1.Polylines[0].Geodesic := True; That’s it for this TMS FNC Maps v2.0 update. I hope you’ll enjoy all these exciting new features!

Read More

Code completion on steroids for Object Pascal

At the end of June, Microsoft revealed its GitHub Copilot project. The Microsoft GitHub Copilot project is a sort of AI driven code completion on steroids. It’s both amazing and controversial at the same time and for sure generates a lot of debate among software developers.  Regardless of the opinions, it is for sure an interesting enough technology for us to investigate and José Leon Serna, our chief architect of the TMS WEB Core for Visual Studio Code project, investigated if the Microsoft GitHub Copilot could have any meaning for us, Object Pascal developers.  And surprisingly, it is already feasible to use the Copilot AI for Object Pascal developers from TMS WEB Core for Visual Studio Code as you can see and enjoy in this video from José:  as well as this video, exploring next steps in AI assisted code completion: If you signup for getting Copilot access, you could already experiment yourself with this new technology from TMS WEB Core for Visual Studio Code. We are for sure living in interesting times with possible changes having an impact on our lives all the time on the horizon! We’re curious to hear what is your take on AI starting to play a role in the software development process?

Read More

TMS FNC Core update: Printing and Design-time Editors

Included in the version 2.6 release of the TMS FNC Core package is a print library that is capable of creating files and send them to the printer. And two design-time editors to make it easier to customize the TTMSFNCGraphicsFill and TTMSFNCGraphicsStroke in your FNC products. The print library supports creating documents, adding pages and page content such as HTML formatted text, plain text, drawing primitives and images, with practically the same code on all different frameworks. This has been implemented on three different levels. The lowest level of implementation for the print library is the use of TMSFNCPrinter, this is done in a similar way as TPrinter is used on VCL, Lazarus, FMX Windows and MacOS. With TMSFNCPrinter there is now support for FMX Android and iOS and for TMS WEB Core. The difference with TPrinter is that the drawing should be defined in the OnDrawContent procedure.  uses …, FMX.TMSFNCPrinters, FMX.TMSFNCGraphicsTypes; procedure Click(Sender:TObject); begin TMSFNCPrinter.OnDrawContent := procedure begin TMSFNCPrinter.Graphics.Font.Color := gcBlue; TMSFNCPrinter.Graphics.Font.Size := 40; TMSFNCPrinter.Graphics.DrawText(0, 20, TMSFNCPrinter.PageWidth, 100, ‘Hello’, False, gtaCenter, gtaCenter); TMSFNCPrinter.Graphics.Fill.Color := gcRed; TMSFNCPrinter.Graphics.DrawEllipse(100,200, TMSFNCPrinter.PageWidth – 100, 300); TMSFNCPrinter.Graphics.DrawBitmap(50,400,TMSFNCPrinter.PageWidth – 50, TMSFNCPrinter.PageHeight – 50, Image1.Bitmap, True, True); TMSFNCPrinter.EndDoc; end; TMSFNCPrinter.BeginDoc; end; On top of the TMSFNCPrinter, there is the TMSFNCGraphicsPrintIO component, which gives the ability to further define the layout of the document with a header, footer and page number and to add certain FNC components. The TTMSFNCRichEditorPrintIO and TTMSFNCGridPrintIO are added In the TMS FNC UI Pack. These components have some additional properties to make the export of the TTMSFNCRichEditor or TTMSFNCGrid even more customizable. Working with FNC controls should be fast and simple. And for that reason we’re adding two new design-time editors in TMS FNC Core. These help with setting the properties for the TTMSFNCGraphicsFill and TTMSFNCGraphicsStroke.

Read More

New hands-on book for Delphi Devs

We’re very happy, proud and relieved that we can inform that the newest book in the series “Hands on with Delphi” is available for purchase now via Amazon. It’s the newest seminal work from our colleague and evangelist Dr. Holger Flick for Delphi developers. It has been over 9 months in the works and it is the biggest book so far in the “Hands on” series, counting 467 pages!  The past months have been extremely hard and focused work for Holger assisted by our developer team to help Holger understand and uncover every little detail in the many controls, components, libraries that are handled in the book. Book theme The central theme in the book is data access & visualization, something all Delphi developers deal with on a daily basis when creating applications. There is a large section on grids as this is a commonly used control for visualizing & manipulating data. There is of course also a lot of attention on multi-tier and REST based access to databases as this is typically where the data comes from in the first place. And there are some lesser-known and newer areas in connection to creating data visualization apps like using vector graphics (SVG) in Delphi apps or use brand new Miletus web technology for creating desktop data visualization apps! In a nutshell, there is enough content to learn many new techniques to create better Delphi applications during this summer period.     First test hard-copy edition of the book                                      Official book cover How to order The book is internationally available in all international Amazon stores: Book recognition Last week, we also got the heartwarming news that the first book about TMS WEB Core from Dr. Holger Flick was recognized in the list of “Best web application books of all time“. It is not only nice that the book from Holger appeared in the list but it is even more remarkable that a web application book for Delphi developers is in this list as most books are on JavaScript, TypeScript, Java, PHP, ASP.NET, etc….  In fact, it is the only book that relates to Delphi in the list. Quite a noteworthy feat from Holger we think! Fwiw, this book is of course also still for sale internationally via Amazon: Amazon USA Amazon UK Amazon Germany

Read More

Delphi Community Edition 10.4.2 & TMS Academic program

Earlier this week, Embarcadero published the newest version of the Delphi Community Edition v10.4.2! It is fantastic news that students can now freely and easily discover the latest & greatest Object Pascal RAD component based development IDE. Navigate to https://www.embarcadero.com/products/delphi/starter to get your free Delphi Community Edition v10.4.2.And your red carpet into the wonderful world of Object Pascal programming doesn’t end here. We have our TMS Academic Program where we offer free & fully functional versions of several products for students and teachers. Immediately supercharge your Delphi Community Edition with several of our free academic products. TMS WEB Core v1.8.0.0 Academic  Yesterday we have released the major update v1.8 Sirolo of TMS WEB Core. Today, we are happy to announce that the TMS WEB Core Academic version was also updated to v1.8.0.0.  A summer of learning With Delphi Community Edition and TMS Academic products, you’re in a first class seat to fill your long hot summer with expanding your horizons. Embarcadero helps you even more with the Summer Camp 2021 and don’t forget to keep an eye on our free webinars at TMS Web Academy. Enjoy!

Read More

TMS WEB Core v1.8 Sirolo in videos

Yesterday we released TMS WEB Core v1.8 Sirolo. You can read all about this exciting new release that extends our Miletus technology to macOS and Linux among many other new features. We have already prepared several videos to let you discover the new features via video in addition to the usual text information. In this blog, we bundled a fresh new series of videos we already have: TMS WEB Core Miletus goes cross platform TMS WEB Core new chatbox control TMS WEB Core new rating control Get started – Learn – Stay tuned Start: Either use the TMS WEB Core trial version to explore new territories for your Object Pascal development, or if you are a student get the brand new Delphi Community Edition v10.4.2 and supercharge it with TMS WEB Core Academic. Learn: Watch webinar replays, read blog posts, get new books Stay tuned: A lot of things are cooking in the labs, it’s getting really hot in the kitchen, we have a couple of surprises coming up. Watch this blog to discover it first.  

Read More

TMS WEB Core v1.8 Sirolo released

TMS WEB Core v1.8 Sirolo is released! We are excited to inform that TMS WEB Core v1.8 Sirolo is released today. This new version is the result of months of hard work of the team to bring several new milestones. Take advantage of the summer-time to expand your horizons and dive into the wonderful web world for Object Pascal developers. Here is a brief overview of the core new features included in TMS WEB Core v1.8  1) Miletus support for macOS and Linux After Miletus targeted Windows in TMS WEB Core v1.7, our team now accomplished the phenomenal next step to create cross-platform web technology based desktop applications for Windows, macOS and Linux. And all that with a minimal footprint. On Windows and Linux this means single executable file apps and for macOS the typical application folder but also here with a single application executable file. Deployment can be done via ultra simple XCOPY deployment. In a nutshell, you can create desktop applications from a single source code base from your Delphi IDE on Windows. You do actually not need an Apple mac machine or Linux box to create these applications. The GUI of these applications is rendered in the browser and therefore empowered by HTML5 and CSS3. You can take advantage of existing web application templates to create stunning GUIs. Not familiar with Miletus? You can learn all about it from this webinar replay 2) New Miletus Interbase and Firebird local database support In this new version, we added two more possible local databases that can be directly used from a Miletus application and that is Interbase and Firebird. No need here to create a REST API interface, you can directly connect a client dataset to local databases. In v1.8 this is now: MS Access, MS SQL, mySQL, SQLite, Interbase and Firebird.               3) Miletus support to access INI files, registry, OS version info Convenient for storing application settings, INI files or registry is what developers frequently use. So, from a Miletus app you can now easily access these INI files and the registry in the same way as you can from a VCL or Firemonkey application. Of course, there is no registry on macOS or Linux and here there is automatic fallback on INI files. In addition, a new API is added to retrieve operating system version information about the operating system where the Miletus executable is running. 4) Two new UI components: chatbox + rating control We have added two new controls to TMS WEB Core v1.8. This is a chatbox control and a rating panel. With the TWebChatbox control, you can write web chat applications with little to no code. Drop this component on the form and all you need to do is write some lines of code to send the message to your chat server of choice or receive messages from there. The other new component is the TWebRatingPanel. This is the classic UI pattern of rating via clicking a number of stars (or other icons of choice). The rating panel offers setting rates in units of 1, 0.5 or fully fractional. 5) SHA1 hashing support in the TWebCrypto component As SHA1 is still from time to time needed in specific communication protocols, we extended the TWebCrypto component that is internally using […]

Read More

TMS WEB Core v1.8 Sirolo beta available

TMS WEB Core v1.8 beta is here It was of course highly anticipated and awaited, this new version of TMS WEB Core v1.8 named Sirolo. Sirolo is a small but beautiful town along the Italian coast at the Adriatic sea. After city Ancona (name of TMS WEB Core v1.7 release), it is a nearby little town the Mille Miglia race in 1955 crossed. Other than the reference to this beautiful place, what does TMS WEB Core v1.8 brings on the table for Delphi developers: 1) Miletus support for macOS and Linux After Miletus targeted Windows in TMS WEB Core v1.7, our team now accomplished the phenomenal next step to create cross-platform web technology based desktop applications for Windows, macOS and Linux. And all that with a minimal footprint. On Windows and Linux this means single executable file apps and for macOS the typical application folder but also here with a single application executable file. Deployment can be done via ultra simple XCOPY deployment. In a nutshell, you can create desktop applications from a single source code base from your Delphi IDE on Windows. You do actually not need an Apple mac machine or Linux box to create these applications. The GUI of these applications is rendered in the browser and therefore empowered by HTML5 and CSS3. You can take advantage of existing web application templates to create wonderfull GUIs. Not familiar with Miletus? You can learn all about it from this webinar replay 2) Extended Miletus local databases support In this new version, we added two more possible local databases that can be directly used from a Miletus application and that is Interbase and Firebird. No need here to create a REST API interface, you can directly connect a client dataset to local databases. In v1.8 this is now: MS Access, MS SQL, mySQL, SQLite, Interbase and Firebird.               3) Miletus support to access INI files and registry Convenient for storing application settings, INI files or registry is what developers frequently use. So, from a Miletus app you can now easily access these INI files and the registry in the same way as you can from a VCL or Firemonkey application. Of course, there is no registry on macOS or Linux and here there is automatic fallback on INI files. 4) Two new UI components We have added two new controls to TMS WEB Core v1.8. This is a chatbox control and a rating panel. With the TWebChatbox control, you can write web chat applications with little to no code. Drop this component on the form and all you need to do is write some lines of code to send the message to your chat server of choices or receive messages from there. The other new component is the TWebRatingPanel. This is the classic UI pattern of rating via clicking a number of stars (or other icons of choice). The rating panel offers setting rates in units of 1, 0.5 or fully fractional. 5) SHA1 encryption support in the TWebCrypto component As SHA1 is often needed in communication protocols, we extened the TWebCrypto component that is internally using the browser crypto API to also offer SHA1 support. 6) Lots of smaller improvements and new features Based on your feedback and that of our team, we did […]

Read More

Writing components for TMS WEB Core

Unfortunately, at this time we do not yet have a seminal book like Danny Thorpe’s book “Delphi Component Design” (https://www.amazon.com/Delphi-Component-Design-Danny-Thorpe/dp/0201461366) for component design for TMS WEB Core. It is definitely on our todolist to write a book on TMS WEB Core component design, but until this happened, there are already a couple of resources that we wanted to bundle here that can help you out. Component types There are actually different component types in TMS WEB Core and depending on your needs, you might select the best type that fits. – Components build from HTML elements  In this component type, the component is rendered from HTML elements, like DIV, BUTTON, INPUT, IMG, SELECT, … To render the component, we basically create such HTML elements in the DOM and attach via Object Pascal code technically JavaScript event handlers to the elements and manipulate the HTML element attributes, content & style properties.  As most components included in the TMS WEB Core framework are of this type, the source code of the framework is of course also a great resource to learn from. – Components similar to VCL controls that are based on painting on a canvas A VCL custom control is basically a class that will paint itself and that will react to user interface inputs like mouse, keyboard, touch… The painting in a VCL control is done via drawing on the TCanvas. Well, the good news is that this component model also exists in TMS WEB Core. It can provide an easy way to port existing VCL UI’s to the web. We in fact did this with Tetris game original VCL Delphi code we found for this. You can find all the information in this blog article https://www.tmssoftware.com/site/blog.asp?post=446. Delphi developers should be quickly familiar developing this kind of custom control by descending from the TGraphicControl class and write overrides for OnMouseDown/OnMouseMove/OnMouseUp or OnKeyDown/OnKeyPress/OnKeyUp and also override the Paint method. The TCanvas class in TMS WEB Core has the same interface as TCanvas in VCL, so you will be quickly familiar using a Brush/Pen and methods like LineTo(), Rectangle(), Draw(), … – FNC Components Use the FNC component architecture and develop the component as FNC component that will also work in a web application. This is another approach and comes with the additional benefit that your custom control will not only work in a TMS WEB Core web client application but also in a VCL Windows application or a Firemonkey cross platform application. And it will also work in the free Lazarus IDE with the LCL framework. Component development for FNC is quite similar to VCL or FMX component development. One basically also overrides methods for UI inputs such as keyboard, mouse and touch and performs the drawing of the control. A difference for the drawing is that this is done via the TTMSFNCGraphics context (and not the TCanvas like in VCL). The TTMSFNCGraphics is an abstraction layer that works in all supported frameworks with the same code. A good starting point for beginning to develop FNC custom controls is this blog article https://www.tmssoftware.com/site/blog.asp?post=346.  Other resources Of course, TMS WEB Core full versions ships with the full framework source code, so it is a great learning resource for writing components. In addition to this, we have published several open-source components you can directly […]

Read More

Framework for creating modern web applications

TMS WEB Core is our framework for creating modern web client applications based on the modern SPA web application architecture. You can develop your web client application using the famous Delphi efficient & productive RAD component based methodology and the fully object oriented and strongly typed Object Pascal language. TMS WEB Core can be used on 3 IDEs: Delphi, Lazarus and Visual Studio Code. TMS WEB Core comes with perpetual license and 1 year of FREE updates & support. Subscriptions can be extended for another year at 70% discount! Get full access to: Web client development from Delphi or the free Lazarus & Visual Studio Code IDE Classic web client apps Progressive web applications Electron or Miletus based cross-platform desktop applications (Win/macOS/Linux) Supports FNC components 70% discount for renewals Yearly renewal only 115 EUR* instead of regular 395 EUR. Full online technical support through TMS Support Center. *The renewal price is 70% discount applied to the new license price at the moment of renewal Act now: Find out more about our Web framework and get your license today! NOTE: If you purchase TMS WEB Core, you get an additional discount of 20% on:

Read More