Added By: Feedage Forager Feedage Grade B rated
Language: English
applications  delphi  embarcadero  linux  patch  rad server  rad studio  rad  rsp  server  studio  support  tokyo  update 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics

Techie Italian Blogging on Delphi and More

Updated: 2018-03-28T09:57:39.294Z


Two Small RAD Studio 10.2.3 Patches


Embarcadero has just released two small and focused patches providing a missing Android jar file and addressing an issue in creating new RAD Server modules in Delphi and C++Builder 10.2.3.

Embarcadero has releases a couple of small and focused patches for the recent RAD Studio, Delphi, and C++Builder 10.2.3 update.

The first is an Android Push Notification Patch available as This patch resolves an issue with push notifications on Android due to missing jar files. It fixes the publicly reported issue RSP-20137.

The second is fix for RAD Studio 10.2.3 RAD Server (EMS) Package Wizard Patch (and as such it is applicable only to Enterprise customers), available at In 10.2.2 a new RAD Server (EMS) project didn't have support for the Linux and the Win64 platforms by default. While adding it, the new wizard in 10.2.3 automatically adds the Linux target platform to both Delphi and C++Builder projects, even when not installed or not supported (C++Builder), and this causes the IDE to crash when using the wizard. In this case the readme has an incorrect reference to the issue addressed, as it lists the earlier bug resolved in 10.2.3, not the follow up problem addressed by the patch.


Database and FireDAC Enhancements in RAD Studio 10.2.3


Along with improvements on RAD Server, the RTL, and the REST client library, there are several fixes and enhancements in the database area of the product worth considering.

I already blogged about RAD Server changes and RTL fixes in the Delphi, C++ Builder and RAD Studio 10.2.3 update. Another area that has received attention is the database support in general, and FireDAC in particular. Below is a list with some of the most notable improvements, with the Quality Portal entry, if available.

FireDAC Improvements

FireDAC work was mostly focused at better handling of corner case scenarios, like the management of Null vs. Empty values for ftMemo fields (RSP-19938), a reduction of CPU consumption for idle applications (RSP-19881), a query OpenOrExecute method updating RowsAffected (RSP-19385), better Login Dialog scaling for HiDPI (RSP-16776).

The dev team also addressed specific database issues including an issue with Oracle queries with parameters over 1000 characters long (RSP-20057), some general issues in identifying parameters (RSP-19744), issues on DirectExecute with PostreSQL (RSP-19701), a MongoDB access from a Linux Apache Module (RSP-19908), and a MySQL "Data too large for variable" exception on certain string params.

A set of improvements relate with FireDAC's BatchMove architecture, including TFDBatchMoveSQLWriter support of NULL value (RSP-19746), OnWriteValue with text BLOBs (RSP-19733) and TFDBatchMoveDataSetWriter with the same data type (RSP-19732), but also RSP-19660 for dmAppendUpdate, reading CVS files on Android and iOS (RSP-19637)

DataSnap Fixes

Contrary to rumors, we are still actively involved in fixing issues in DataSnap and cleaning up some of the related infrastructure. This release adds the ability for a Datasnap server method on Apache to takes a TJSONObject parameter even if the method name does not start with "update", addresses memory leaks in WebModule.Response.SendResponse (RSP-20063), lack of OnError event on TDSServer (RSP-19661), C++ DataSnap wizard issues (RSP-19444), proxy server problems (RSP-18760), resolved a memory leak in TCP Datasnap server when OnCreateInstance and OnDestroyInstance event are handled and some more.

ReFind Update

This is a search replace tool helping in code migration, we fixed issues with {$IF CompilerVersion} claused (RSP-20025). The tools is available in our binaries and scripts are in the database section of the demos folder.


This is all for the database side of things in 10.2.3. Not a lot of feature work, but some good quality improvements, along with the feature work on RAD Server.


RTL Enhancements in RAD Studio 10.2.3


In this bog post, I want to highlight a few fixed and changes in the Delphi RTL for RAD Studio 10.2.3 update.

As listed in the "What's New in 10.2.3" DocWiki page,, among the changes, new features, and fixes in the latest update of 10.2 Tokyo.

One of the added features is MIME support improvements for the REST Client library. This was achieved by adding a new internal TMimeTypes class to handle the various mappings and enhancing MIME content-types in the TRESTClient component. Particularly, in the System.Net.Mime unit there is now:

* A TMimeTypes class allowing to map file extensions to mime types and backward, to iterate registered file extensions and mime types. This is based on a list of standard MIME types, including roughly 1,000 entries -- see image below.

* A TAcceptValueList class allowing to analyze Accept-Xxx request parameters and negotiate response. For example, it can analyze accept request and decide weather to respond with appropriate content or not, and in case which content type to use.

Beside this improvement in MIME support, there are other HTTP Client library improvements in Proxy support, in a more consistent stream posting implementation, and better support for forwarding cookies in a redirect, and finally the support for login with a blank password.

In different RTL areas, we made some further changes to System.Pas (after those in 10.2.2) to better support third party memory managers -- something that got inadvertently broken in an earlier release. We also made some DUnitX fixes for the Linux platform.

Finally, we made a few changes to some Windows API calls to use dynamic invocation to offer better Windows XP compatibility (even though the platform is not officially supported).

Among the bugs we fixes, notice a few:

- TJSON.ObjectToJsonObject raise an exception when object is nil (RSP-18631 in Quality Portal)

- RegEx.Replace replaces at wrong position (1 byte offset) on Andriod and iOS (RSP-18921)

- Regression: TQueue data overwriting (RSP-17728

These are not big uptakes, but a collection of smaller enhancements and fixes that help improving the product and making it more robust. Overall, if you look in you can see another good spike of closed issues.



RAD Server Support for Web Files in RAD Studio 10.2.3


RAD Studio 10.2.3 version of RAD Server adds support for directly mapping and returning web related file, a handy feature when using the local development and debugging version

The RAD Server (formerly EMS) platform is evolving to be a better backend for JavaScript applications, including of course those built with Ext JS. In the 10.2.2 release we improved support for returning JSON data based on the result of database queries, as covered in

In RAD Studio 10.2.3, we have added to RAD Server the ability to act as a Web Server, with the support for mapping URLs to folders and returning the content of files like HTML, JS, CSS, graphic, and more. This is a handy feature when using the local development and debugging version, so you don't need to configure both the web service and a separate web server for development, testing and debugging. We do not recommend using this approach for deployment: in that case RAD Server is deployed as a Web Server (Apache or IIS) plugin and the Web Server would of course support file mapping.

How do you configure RAD Server to return files? There is a new section in the EMS.INI file (notice this is a global configuration, not per module) when you can add virtual folders:

;# Identify directories that contain public files, such as .html
;# The following entries define two different virtual directories ("images" and "content") 
;# that may be used to access static files. The "directory" value indicates the physical 
;# location of the static files. The optional "default" value indicates a file 
;# that will be dispatched by default when browsing to the root of the virtual directory.
;# The optional "mimes" value is an array of MIME file type masks. And optional "extensions" 
;# value is an array of file extensions. Only these files will be accessible from this directory.
Path1={"path": "images", "directory": "C:||web||images||", "default": "index.html", "mimes": ["image/*"]}
Path2={"path": "content", "directory": "C:||web||content||", "default": "index.html", "extensions": ["js", "html", "css"]}

In this case I have two folders, one with images and one with HTML content, and also a default file with the URL refers to the folder as a whole. So I can now create a JavaScript application invoking a server method. To keep things simple, I've used a minimal jQuery application:

RAD Server JS + Service


When clicking on the button, the JS app will call the /xyz resource of the RAD Server project and display the result. This is the application in action in a browser (with the RAD Server log below):


Of course, our focus is to help build applications that use Ext JS as the client and RAD Server as the server. I'll make sure to follow uo with such a demo soon.


Delphi 10.2.3 is Now Available


Delphi Tokyo Update 3 has been released today

Embarcadero has released today version 10.2.3 of RAD Studio, Delphi and C++Builder, that is Tokyo Update 3.

Official announcement:

Introductory video: 

DocWiki What's New page:

List of 100+ publicly reported bugs fixed:

Among many features, one is fairly notable: "Inclusion of mobile support in Delphi and C++Builder Professional Edition". If you have Delphi Pro with active update subscription, you now have access to Android and iOS at no extra cost.


Delphi Blogs of the Month #58


It has been way too much time since I shared a few relevant blog posts, so just providing some key ones, and hope to get back to a monthly schedule. The last few months have been really a bit hectic, and I failed to find the time for my regular "notable Delphi blog posts" summary. I've also done very few blog posts in general. Here is one, with key entries only (or I'd be way too long). Embarcadero Updates Exciting RAD Studio Developments in 2018 by Sarina at with new plans and the announcement of a 10.2.3 release. Upgrade SKU to be Discontinued by March 31st at This means you have only 2 weeks to update from recent versions (in case you don't have Update Subscription, of course). With Update Subscription as standard approach, updates from the previous release make little sense, so they are being discontinued. Modernize Your Apps by Atanas at Blog Posts I didn't know you could do this with Record Helpers by Dave at Creating custom TEdit styles with the FireMonkey Style Designer by Sarina at Optimizing ARC the hard way by Dalija at Strings too slow outside WIN32? by Rudy at Three parts on MVVM, the last being MVVM Starter Kit (Part 3 of 3) by Erik of Grijjy at Very nice series, recommended read. Meltdown, Spectre and Delphi by Danny at The Exit Procedure by TMS at Lockless Multi-Threading in Delphi by Craig at Data-driven Multithreading by Primoz at TIP: Typing long strings in the editor using Enter to auto-continue to the next line by Kyle at (you always learn something new in Delphi ;-) Debugging Delphi applications inside a Windows Docker container by Juan at This is a very interesting post, as Docker is growing even on Windows. Thanks for sharing. JavaScripting with Duktape for Delphi by Erik at Supporting In-App Purchase Subscriptions for iOS and Android Firemonkey Apps by Chris at Extremely detailed and well documented. Very handy. Feeding a HTML report dashboard from a Delphi application by Craig at Accessing private methods of another class by Rudy at Delphi Videos  I suggest you keep an eye to Kassebaum Development YouTube channel, very nice stuff: Jim, David and Craig have started a weekly live video podecast. See for example Other Programming [...]

Speaking in London About Delphi Tokyo on Thursday, March 15th


Next week I'll be presenting a live session in London, UK. If you can join, this would also be good chance to have a chat and offer me feedback about RAD Studio in general and Delphi specifically.

Next week I'll be presenting at an event in London organized by our partner Grey Matter. You can find more information and the link to sign up on 

Titled "To Delphinity and Beyond" the event is focused on a general update of where the product is today and where it is heading in the near future. There will be specific focus on what's new in the latest Delphi (including the coming version 10.2.3) a long session focused on Windows 10 support and VCL applications modernization, but also Linux, mobile, parallel library, RAD Server, and more.

I'll be around for most of the day, even before and after the event, so feel free to join and have an extra chat, but also ping me over email to reserve some time up front. See you soon.


Running a Delphi Linux Application on Google Cloud Shell


Google has made available to all its users a Linux Shell to interact with their Cloud Services. It is an online Linux machine you can use... also for running Delphi Linux applications.

Google has made available to all its Gmail users a Linux Shell to interact with their Cloud Services, called Google Cloud Shell. This shell is a free Debian 7 shell with 5Gb of storage. It is not a VM that keeps running while you are disconnected, but it is a shell allowing you to perform task on a Linux box. Every time the session expires and you reconnect, a new machine is created for you. The 5GB of storage is persistent, though.

You access to this shell via browser at:

It is an online Linux machine you can use... also for running Delphi Linux applications. So, as an experiment, I've written a console app that downloads some RSS feeds data (via TIdHTTP) and dumps it in a local file. The file name is a timestamp:

SaveToFile (FormatDateTime ('yymmdd_hhnnss', Now) + '.txt');

I've pushed it to a web site, opened the shell, used wget (plus the URL) to download it, chmod u+x to mark it as an executable for the user, and could simply invoke it in the local folder, as in the image below:


Now the power of this shell comes from integrating with other Google Cloud services, but it certainly nice to have a Linux shell at hand, for free, for running any application including those you build with Delphi Tokyo for Linux.


RAD Studio 10.2.2 Tokyo February 2018 Patch Re-Released


We have released (after an initial glitch) a patch for Delphi and C++Builder 10.2.2 Tokyo covering a critical Android animation issue and some RTL interface compatibility improvements

Last week, Embarcadero released a patch for Tokyo 10.2.2, focused on Android and RTL improvements. What happened is that Windows would not always ask for execution with admin account (on systems with active User Account Control) and could end up copying the replacement files in a wrong location. It did affect a few of the developers who tried it, so we pulled it, fixed the installer and now re-issued the patch.

If you are a registered user of Tokyo (or have a license for it), you can find it at

There is no change in the content on the patch, so if you already installed it successfully, there is no need to repeat the process. On the other hand, if your installation got broken, we have provided an alternative ZIP-based option (in the same download page). We have already sent it to developers who had got in trouble, but might not have reached everyone.

As for the content, the main fix is the Android animations and tab animation issue. These have been addressed. There are still cases in code where the combination of called to Application.ProcessMessages and timers might get you in trouble. I'll blog more information ASAP, but the general recommendation is to use threads rather than timers for background processing -- an all platforms, although in Windows that coding style can be used.


Updated Notice: Only for 10.2.2 Build 2004 

We had a notice in the download page, but better repeat it here. The patch is only for the second build of 10.2.2 we released, build 2004. If you have the previous build (which had compatibility problems with third party packages) don't install the patch. Either wait for a future update (if you don't specifically need the fixes the patch provides) or install build 2004 first. The link to 2004 installer is in the patch download page.


Delphi 23 and Delphi 10.2.3


Today is Delphi's 23rd birthday and Embarcadero just announced version 10.2.3. Coincidence? ;-)

Today is Delphi's 23rd birthday. The product was launched on Valentine day in 1995 in San Francisco (and I had the luck to be there, as I covered in the past). 23 years is a lot of time for people. It is a incredibly long time for technologies. It is hard to find a language, framework and IDE from 23 years ago you can use to build todays's and tomorrow's software. Of course, the IDE, language and frameworks have evolved and keep evolving -- developers using them can modernize their apps without a full rewrite.

In this 23 years, millions of developers and have used Delphi to build millions of applications, and applications used by millions of users. The most used Delphi application ever build is probably Skype for Windows. But it has been used to build applications worth millions in sales and moving millions in financial markets. And Delphi is still used to day to maintain those applications and create new ones in industrial, financial, health, travel, and sport fields (among others)... including mobile apps for its birthday. Or to run a miniature airport.

In these 23 years the product has changed a lot (Hey, I've changed a lot from the picture in the link above!), Below you can find a comparison of Delphi 1 running on a VM and Delphi 10.2.2 (with dark theme) running on the same machine. It is not a Photoshop, it is an actual screenshot!

(image) Both versions of the IDE have a VCL application with a Button and the Caption property highlighted in the Object Inspector. I didnt' include the about bos of 10.2.2 (as I was trying to do) because it is a little too big. One of these days I'll make a parallel video of working on both. But you know what? Most applications you build in Delphi 1 can be recompiled with few changes in the 23 year later version. Well, as long as you don't use pointers, as Delphi 1 had 16 bit pointers (ugh!). Of course, most applications you write in todays product don't have a chance to run in the older sibling.

Speaking of today, Embarcadero (and the PM team I'm part of) just announced some more plans for this year, and the plan does include the coming release of an additional quality focused update for 10.2 Tokyo, 10.2.3. Now 10 x 2 + 3 is in fact 23. Or Delphi 10 version 2.3. We have a lot in the works for the next mayor release, but also want to keep improving on the quality of Tokyo and release it as soon as possible.

What else can I say? Just invite to you watch Jim Mckeeth great "23 years" Why I Love Delphi video.