Added By: Feedage Forager Feedage Grade B rated
Language: English
creators update  creators  delphi  developers  embarcadero  file  linux  new  rad studio  rad  studio  update  web  windows 
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: 2017-05-19T02:20:49.557Z


RAD Studio May 2017 Roadmap and Commentary


Over the last week, Embarcadero published a new official RAD Studio roadmap and an additional blog post with Product Manager comments and further information.

Over the last week, Embarcadero published a new official RAD Studio roadmap and an additional blog post with Product Manager comments and further information (including a section of mine).

Here are the links, in case you missed one of those:



New FireDAC Database Status Page


Our doc team has just added a new page to the Status Wiki covering the versions of the databases FireDAC officially supports.

Since last year, beside our regular docwiki with the extensive product documentation (it has over a quarter million pages!) Embarcadero has a platforms status wiki indicating with versions of operating systems are supported -- and how that changes over different versions of RAD Studio. The page includes also information on just released operating system updates and fixes or workarounds for those.

Now we have added a new page listing the versions of the RDMBS FireDAC officially supports in different versions of RAD Studio. We plan adding similar workarounds and additional information as it becomes available, although in most cases newer database versions work fine with drivers tested for previous versions. The new page is at:



Speaking at ADUG 2017 Symposium Next Week (and Visiting Australia)


Next week on Thursday and Friday I'll be speaking at the ADUG Symposium in Brisbane and Melbourne. I'll stop by in Syndey before that -- open to having a chat with customer and friends.

Next week on Thursday and Friday I'll be speaking at the ADUG Symposium in Brisbane and Melbourne. The event information is at I'll give two sessions, one focused on the Delphi language and one on its Windows support (including WinRT and the Desktop Bridge). I'll also give a keynote on the status of Delphi. There are other sessions for a day packed of content. If you live in the area, you should not miss the event...

Before the events, I'll spend also a couple of days in Sydney with our local partner (and friend) Malcolm Groves, meeting customers and discussing the product plans. If you can come to the events, I'll be happy to have a chat. If you cannot attent and you are in the area, we can still arrange something. Trying to get the most of the long trip!

See you down under...


Delphi Web Razor Scripting Webinar on Thursday


Thursday May 4th (that is, in 2 days) I'll give the webinar on Razor Scripting with Delphi WebBroker, introducing the open source library I wrote (with help of a few others). The same day is also Star Wars Day.


Thursday May 4th (that is, in 2 days) I'll give a webinar on Razor Scripting with Delphi WebBroker, introducing the open source library I wrote (with help of a few others). The same day is also Star Wars Day.

I already wrote a bit about the project in a recent blog post (

In this webinar I'll cover the foundations of the Delphi Razor scripting language, see how it can be used as a drop-in replacement of PageProducer, see how it can handle complex dynamic website, and showcase a couple of real world examples based on Bootstrap. I'll show demos running on Windows and Linux servers.

Register now for this webinar that is coming on Thursday, May 4, 2017 on The weboanr will be given at 3 time zones, 8:00 AM CDT (3PM Europe) - 1:00 PM CDT (8PM Europe) - 8:00 PM CDT (morning of the 5th in APAC region).


Delphi Relax Web Scripting on Linux


I've finished porting my Delphi Relax web scripting library to RAD Studio 10.2, adding Linux support. I've also created a new small and focused Linux demo I plan expanding soon. I've finished porting my Delphi Relax web scripting library to RAD Studio 10.2, adding Linux support. I also added a new set of unit tests. The library is available at and we are considering adding it to GetIt as well. In two weeks I'm going to host a webinar covering the library, covering different scenarios of modern web development. Stay tuned for that. In this blog post I want to focus on a 5 minutes demo showing Linux support. I'll probably expand the demo for the webinar. First of all, what is Delphi Razor? It is a web scripting notation heavily inspired by ASP.NET Razor notation. The Delphi tie in comes form the ability of the application to exposes objects, list of objects and datasets to the web page processing engine, by means of RTTI. To build a simple database-driven the demo, I've created a console-dames WebBroker application, I've dropped an FDMemTable and an FDStanStorageBinLink component to the web module. This will allow me to load data from a local file (local on the web server). Next I've dropped an RlxRazorProcessor component and associated it with a local HTML file, by setting the InputFilename property to "./table.html". I've also added a custom action to the web module, and added an event handler for it. You can see the design time components below: Next, I've create a fairly trivial HTML file for the data. Notice this can be any HTML, based on Bootstrap (like I've done for other Delphi Razor projects) and integrating any JavaScript client library. This one is really a bare bone HTML file: Employees     @foreach (var emp in employee) {   @emp.FirstName @emp.LastName (@emp.PhoneExt) } What this does is iterate over the element called "employee" (which happens to ba a database table) and replicate the HTML within the curly braces for each record, creating a line item for each entry with the value of three fields. The for loop defines a local loop variable "emp" that is used in the loop to refer to the record. Drop that segment of HTML with script into a nice looking HTML page and you are in business. The last bit is adding the code to load the database table and associate it with the name "employee" used in the script. Here is the complete code of the web action event handler: procedure TWebModule2.WebModule2WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); var filename: string; begin filename := './employee.fds'; if not FDMemTable1.Active then begin FDMemTable1.LoadFromFile(filename); FDMemTable1.Open; end; RlxRazorProcessor1.AddToDictionary('employee', FDMemTable1, False); Response.Content := RlxRazorProcessor1.Content; end; The binding of the internal data with the script happens by adding an entry in the processor dictionary. By copying its content to the output, the last line of the code will trigger the script processor. Now compile and deploy to Linux, start it (like in the image below): You'll be able to see the ugly HTML output in your browser: Stay tuned for more information about the Delphi Razor webinar.   [...]

Linux ClientDataSet Now Available


The library required to use the ClientDataSet component on Linux is now available for download.

To use the ClientDataSet component on Linux Delphi applications you need to distribute the library, the Linux equivalent of midas.dll. We failed to deliver it as part of the 10.2 Tokyo release, and it has been made separately available at:

The additional file belongs to the redistributable list and you should also copy it to C:\Program Files (x86)\Embarcadero\Studio\19.0\binlinux64 -- ultimately it doesn't matter much.

You can add that file to the application deployment, so that it will be copy to the Linux box via PAServer, or just copy it manually to the Linux box. Of course, you need to do so only if you want to use the ClientDataSet component in a Linux application. While we recommend the FDMemTable component as a replacement, if you have existing code based on ClientDataSet you might want to use that older solution.


RAD Studio 2017 Themes and Developers Survey


With 10.2 Tokyo shipping, we have renewed our focus to future plans. The RAD Studio PM team has published a summary of the themes for this and the next year, and opened our yearly developers survey to our customers asking input for our future plans and validation of some ideas we are exploring.

With 10.2 Tokyo shipping last month, we at Embarcadero have renewed our focus to future plans, while R&D is still busy with fixes, updates, and some additional Tokyo features (mostly C++ for Linux).

Themes for 2017/2018

The RAD Studio PM team (that is myself, Sarina, and David)  has published a summary of the themes for this and the next year. You can find the document at There isn't much to add to what's written there. The three key Delphi related items are:

  • Expanded native controls support for multi-device development
  • Enhanced Windows 10 platform features
  • Delphi Language Features

RAD Studio 2017 Developer Survey

We have also opened our yearly developers survey (available until April 25th) to our customers asking input for our future plans (for example asking for details on each of the 3 items above) and validation of some ideas we are exploring (in many existing and new areas). We know that a 97 questions survey can be intimidating (although a few questions are fairly easy and fast to answer) but this survey is the largest we do every year and we spend a lot of time examining the information our customers give us. The direct link is:

So I'm asking you personally to take the survey , but also to invite others (active Delphi or C++Builder developers, but also developers who moved to other tools and could tell us what would make them consider coming back, or just why they are not using RAD Studio any more and what they don't like), and also software developers at large who have never used our tools extensively but are interest to tell us what they like in a developer tools. If you can help us reach more developers, it will help us shape the future of the product for a broader community.

Thanks for your help.


Windows 10 Creators Update and Delphi 10.2


Today Microsoft shipped Windows 10 Creators Update. I installed it and also did some testing of the Bash shell. From the Delphi perspective, of course. Creators Update Developers Information Today Microsoft shipped Windows 10 Creators Update. You can read some of the key developers information in many places, including: The most relevant change for VCL developers is the fact that High-DPI support has further changes, something we are still assessing internally. There are some interesting new APIs like "Payment Request API". Also notice the additional options for Windows Desktop Bridge apps, ranging from resource explorer handlers to COM servers,  Installing Windows 10 Creators Update I upgraded my main Windows 10 PC to the new release and the installed it and the process was smooth. Notice that if you are not offered an update, you can still download an application to do it sooner. Very smooth process, but not slow. Delphi On Creators Update I had RAD Studio 10.2 already installed on the PC, so all I have to do it start it and build some VCL and FireMonkey applications. There is no significant difference, and everything worked fairly smoothly. Including UWP applications installed using the Windows Desktop Bridge. No surprise, also because I had already installed the RTM version and previously some beta versions of Tokyo on a VM with recent builds of Windows. And Delphi Linux in the Ubuntu / Bash Shell The last test I did was installing also the Ubuntu Bash shell part of Windows 10 (even if still in beta). This was fairly smooth. In fact I was chatting with Matthias, who also blogged about it earlier today (in German) at Given the bash shell has access to your file system, you can easily compile an application in Delphi for Linux and run it on the bash shell right away. This is not a VM, it runs in the native computer. Below you can see an image related with the installation and one with a simple application in the IDE and running in bash on Windows: The missing element is PAServer (and the version of GDB it uses) still has issues running on the bash shell, something we are loooking forwrd to fix and support. Stay tuned. [...]

Deploying Files (and PAServer) to Linux via WinSCP


I'm a longtime fan and user of WinSCP. It is great for direct deployment of files (including executable files build in Delphi) to Linux. But it also help deploying PAServer.

I'm a longtime fan and user of WinSCP ( This is a nice free utility to do SCP (Secure Copy via SSH) to Linux boxes, manage files, remotely, and even perform a variety of file system operations on remove Linux boxes. All from a nice and familiar Windows UI, with local folders and remote ones side by side. This is an example:


If you use this tool to deploy PAServer to your Linux box, you can also use it to un-compress and expand the tar.gz file, using a simple command in the popup menu of the remote file:


I've created a video showing these steps, but also the following operations need to connect the IDe to PAServer and import the Linux SDK. It is available on YouTube at or below:

width="560" height="315" src="" frameborder="0"> 

PS. Just FYI, WinSCP is mostly written in C++, and built with a familair tool ( "To build WinSCP you need: Embarcadero C++ Builder XE6 Professional"


New Warnings, Illegal Casts, and other Delphi compiler changes in 10.2 Tokyo


While there is no significant new Delphi language feature -- but a brand new Delphi compiler for Linux -- the 10.2 version has a few changes worth mentioning. Also because they can be causing issues when compiling existing code that has borderline code.

The focus for the Delphi compiler R&D for the 10.2 Tokyo release was clearly the development of a new compiler for Linux. However, there were many bug fixes and several minor changes to the compilers for all platforms worth covering.

Command Line Compilers are Large Address-Aware

You can use the 4GB memory space for common line compilation, like it happens from the IDE since 10.1 Berlin. Notice that given the command line compiler has much less memory overhead (the IDE loads design time packages and libraries in its memory space), this gives the compilers even more room in memory.

New Warnings

There are new warnings in the compiler, mostly focused on helping find potential breakage when building applications for multiple platforms and different CPU types:


W1071 Implicit integer cast with potential data loss from '' to ''


W1072 Implicit conversion may lose significant digits from '' to ''"


W1073 Combining signed type and unsigned 64-bit type - treated as an unsigned type"

Only the last of these 3 is on by default. You can disable it with a directive like {$WARN COMBINING_SIGNED_UNSIGNED64 OFF}.

You can also turn each of the warnings in an error. For more information about this issue and a complete list of the warnings (and their ID, used for configuration) is available at

Dynamic Arrays and Pointers

Assigning a dynamic array to a pointer is now considered an error, given this breaks reference counting on ARC platforms -- but can cause problems also on others. You can still do it (if you know what you are doing!) by using a hard cast.

Changes to Namespace Resolutions Rules

References do dotted unit names from uses statements have become a little more flexible. In the past, it had to be a direct match or reply on unit aliases declared in the project. Now the rule is a little more flexible. The compiler searches the non-prefixed name first, then iterate optionally specified namespaces. So, for example, "uses Classes" will first look for a unit called "Classes.pas", than go for "System.Classes.pas" and finally search in the FMX and VCL namespaces.

These new rules should be largely compatible with the old ones, as they should resolve more scenarios automatically, but specific projects with duplicated names and an odd use of aliases might end up behaving differently.

Allow Undefined to LLVM Linker

By default, the compiler asks the LLVM-based linker to resolved all external symbols (for DLLs and shared object files) passing the "--no-undefined" option to it. However you can use the "--allow-undefined" option to disable the standard behavior (and avoid indicating that linker option). This allows you linking when the symbols are not available at compile time. Occasionally this feature is handy on the Linux platform.