Marco Cantu

Syndicate content
Techie Italian Blogging on Delphi and More
Updated: 55 min 24 sec ago

Delphi Blogs of the Week/Month #49

Mon, 01/16/2017 - 03:27

The first list of interesting links and blog post of 2017, focused on Delphi development.

Embarcadero Udpates

Press release "Embarcadero Announces RAD Studio Desktop Bridge Support for Windows 10 Deployments" including a comment by Kevin Gallo, corporate vice president for the Windows developer platform at Microsoft at

This press release got also referenced by SD Times at

There is Debugger Hotfix for macOS Sierra and the iOS Simulator for 10.1 Berlin. Information at and download at

Blog Posts

World First! A Linux web service written in Delphi by Craig at

Got a link to this fairly interesting blog on Delphi:

Did you ever use Bold? Check out

I don't know who write this and don't agree in full (and it stirred some discussion), but I found it interesting:

A Delphi wrapper for Slack API by Andrea at

Integrating with you favorite CRM/ERP web based client -- or poor mans integration? -- by Steffen at

Webinars and More

Check out 2017 upcoming Delphi webinars at

In particular, there is a new BootCamp focused on Arduino and IoT early February, that looks pretty interesting. More information to come.

Categories: News, Blogs, and Tips

Answering the Question: Do I have Berlin Update 2?

Mon, 01/09/2017 - 00:44

There is a glitch in RAD Studio Berlin Update 2: For some users the About Box indicates the wrong version number in the "Installed Updates" field.

An example is below:

So how do you know if you actually have Update 2 installed? An easy way is to keep an eye to the Splash Screen, which was updated with the fireworks:

The more official way is to check in the About Box the actual version number. As you can see in the first image above:

Berlin Update 2 has version number 24.0.25048.9432

Berlin Update 1, instead, had version number 24.0.24468.8770

The first release (RTM) of Berlin was 24.0.22858.6822


Categories: News, Blogs, and Tips

My Year in Cities 2016

Sat, 12/31/2016 - 02:36

Following a long tradition of this blog, dating back to 2006 (and continued in each of the following years), here is my year 2016 seen through the cities I've been to. The rule is: Places I've visited in 2016 for at least one night (plus some relevant daily trips), in chronological order. At times, the reason for the trip is listed. In bold are cities or countries I've been to for the first time.

  • Piacenza, Italy, is where I live
  • Assisi, Perugia, Italy
  • Berlin, Germany (RAD Studio Berlin Launch)
  • Cannes, France (Film Festival)
  • Courmayeur Mont Blanc, Italy
  • Trip to Germany and Denmark
    • Zurich, Switzerland
    • Erfurt, Germany
    • Berlin, Germany
    • Hamburg, Germany
    • Middelfart, Denmark
    • Billund (Legoland) Denmark
    • Bad Salzschlirf, Germany
  • Courmayeur Mont Blanc, Italy
  • Koeln, Germany (Delphi Tage)
  • Rome, Italy (ITDevCon)
  • Viareggio, Italy (Lucca Comics)
  • Duesseldorf, Germany (EKON)
  • Frankfurt, Germany (Delphi Developer Days)
  • Zeist, Netherlands (SDN Event)

While I've been traveling quite a bit, my trips this year have been limited to Europe. Hope to be able to get back to the US to meet my coworkers next year, and I already have some other long trips planned for 2017. Stay tuned. 

Have a great 2017 full of happiness (and traveling!).

Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #48

Fri, 12/30/2016 - 01:08

It has been a long time, but here is another roundup of notable blog posts in the Delphi space.


Debugger Hotfix for iOS32 (for RAD Studio 10.1 Berlin) at

Technical Blogs

Optical Barcode Recognition Library For FireMonkey In Delphi 10 Berlin On Android at

Conditional Uses Clause Considered Harmful at

Changing the color scheme of an Android style at

The Best Windows Support RAD Studio 10.1.2 Berlin at

Running Delphi applications on Raspberry Pi 3 at

Introducing SubHub (a complete, real world Delphi + RAD Server project):

Towards Linux

Running Delphi VCL code on Linux via Wine, at

Preparing for Linux at

Configure Delphi and RedHat or Ubuntu for Linux Development at:

InterBase on Linux at

Setting up SUSE Linux Enterprise Server/openSUSE Server for the Delphi on Linux Beta at (with some beta info shared under permission)

Open Source Projects and Libraries

Interfacing with Slack from Delphi:

Some CodeRage 2016 code at

Delphi LeakCheck at

FireMonkey snow effect:

And finally a video with this effect on YouTube, as a way to celebrate the winter season and wish you a great 2017:

Categories: News, Blogs, and Tips

New GetIt Packages: AQTime, InstallAware, Redis, ErrorSoft, Component Trials by TMS and Others and Much More

Tue, 12/27/2016 - 12:35

There are many additional packages recently added to the GetIt Package Manager for Berlin, from free tools and components, to trial versions of paid ones. The list include AQTime, which was until recently an integrated third-party tool and it is available now for Berlin as part of the core product. Similarly, there is now also InstallAware, an updated version of NexusDB, some new free tools (including a Redis Client by Daniele Teti).

Finally, there is a fairly long list of trial versions of paid components, including many from the large TMS offering. You can now try these components directly from the IDE. The following images provide more details.

Berlin Add-On Value Tools    More Free Component Libraries


Trial Versions of Popular Third-Party Components Great Games with Full Source Code

More Coming

More libraries of components are added over time, and the entire TurboPack list has been updated with the latest versions. Overall, there are 58 different entries for Components and Libraries, outside fo the "Internet of Things" collection. Feel free to email me if you have libraries or tools available for inclusion.

Categories: News, Blogs, and Tips

Microsoft mentioning RAD Studio Desktop Bridge Support

Wed, 12/21/2016 - 01:13

It is a fairly interesting time to see Microsoft promote RAD Studio Berlin Update 2 support for the "Centennial" bridge, as the only IDE providing this capability out of the box.

First, Microsoft Windows Developer account tweeted about it at (see below):

Second, RAD Studio has been mentioned in the blog post "Conversion options for bringing your existing desktop app to the Universal Windows Platform using the Desktop Bridge" at, Towards the middle of the long post you can read:

"Additionally, Embarcadero has announced support for the Desktop Bridge in RAD Studio, which lets you directly output a Windows app package through the build process."

And third and even more relevant RAD Studio in mentioned in the official MSDN documentation at

For more information on our side, you can refer to:

- The new desktop Bridge landing page:

- The blog post (and webinar recording) by Pawel: (the video is at

- My blog post offering an overview:

There are more and more of our customers publishing Delphi and C++Builder applications on Windows Store, let us know of any relevant application that gets published so we can track it. As a reference, my "My MiniFigures" store app has been had 420 downloads so far, but I'm sure you can beat it!

Categories: News, Blogs, and Tips

Less is More - Why Less Major Releases with Non-Breaking Updates Adding Features is a Good Thing

Wed, 12/07/2016 - 06:25

Answering to pressing requests from customers and partners, RAD Studio is moving this year from a 6 month release cycle with one main bug-fix update to a 1-year release cycle with multiple updates including fixes and new features. 

As we announced in our last published roadmap,, we are significantly slowing down the release cycle, going back to a more or less yearly major release for the product, from the faster cycle of recent years. There are many reasons for this change, but it mostly addresses complaints from customers (and tech partners, and component vendors).

The original requirement to release more often was driven by the fast-paced change in mobile operating system, compared to the Windows world -- which is actually now moving much faster under Windows 10, but that's a separate story. This requirement still applies, but it can be fulfilled in a different way.

This change in delivery cycle and model, in fact, is tied to another change, namely the fact that update subscription is now compulsory. I know you might not see the connection, but this gives us freedom to release new features and support new versions of operating system in updates, with no negative effect to the business financials. The only caveat, of course is maintaining the largest degree of binary compatibility with existing DCU files and packages. This might not be doable for a new operating system, but it is certainly doable for VCL and Windows, which is the platform the largest projects from our customers are on.

Berlin Update 1 was borderline, with some new features like native iOS grid added to the product, but most of the focus on fixing bugs. Berlin Update 2 has been the first this release in this new direction, with new VCL controls, new IDE designers, support for Desktop Bridge, and more.

It is true that delivering the same amount of features in a non-breaking update will require us some extra work, and in some cases (like Delphi language changes) it won't even be doable. So we might have to delay some features, because of the technical limitations due of non-breaking updates. But we feel the benefit of a slower release cycle to the stability of RAD Studio and of our customer projects, and hope this will allow more customers to stay and migrate on the latest version sooner -- with a good benefit in terms of their experience.

Needless to say your feedback is critical -- and even more because this was mostly driven by customer feedback. Do you still feel the product can move in the right direction with this model? Do you feel your update subscription remains relevant? Will you be able to safe time and money while keeping up to date with RAD Studio? Or will you upgrade your projects every 2 or 3 years no matter what? Let us know.

Categories: News, Blogs, and Tips

Speaking at SDN Event, December 9th, in the Netherlands

Tue, 12/06/2016 - 12:36

Bob Swart, who coordinates the Delphi events for SDN, invited myself and Andrea Magni (all Italian crew) to talk at the SDN Event next Friday, December 9th. I'll be giving a keynote on the status of Delphi, a session on Windows 10 and the Centennial Bridge, and one on my experience publishing mobile applications. Andrea is talking about this FireMonkey and REST open source libraries.

More information at

​I won't be around much, traveling only for the event, feel free to stop by and have a chat.

Categories: News, Blogs, and Tips

Building and Deploying a Local Appx Package

Thu, 11/24/2016 - 06:17

With Delphi (and C++Builder) Berlin Update 2, you have the ability to create and deploy on the local machine an Appx package, leveraging the Microsoft Desktop Bridge (aka Centennial Bridge). The IDE also support deployment for Windows Store, using slightly different steps.

However some of the steps are far from obvious, particularly including generating and registering a self-signed certificate. This blog post highlights some of the steps need, and the related video (extracted from one of my CodeRage sessions) show all of the steps in details, going from a vanilla version of Update 2 to the APPX deployment.

Detailed Content

The video covers:

- Configuring the Windows SDK in the IDE to enable the execution of the required SDK utilities

- Creating a self-signed certificate from the IDE

- Creating a project and build it for store deployment, configuring the provisioning page

- Looking into the list of deployed file and in particular into the Appx manifest file

- Installing the self-signed certificate among the trusted certificates on the local machine (for this step, there is a detailed description below)

- Installing the Appx package on a machine, uninstalling it, looking at the file system location where it is stored and the versioning model

The Video

The video in itself is slightly over 10 minutes, and you can see it on YouTube at

Further Instructions for Certificate Registration

To import the certificate having the .pfx file generated by the RAD Studio IDE:In File Explorer, select the certificate file and use the Install PFX local menu item:

  1. In the Store Location group, select Local Machine
  2. Click Next and OK to confirm the UAC dialog
  3. Confirm the certificate file selection
  4. Enter your certificate password
  5. In the next screen of the Certificate Import Wizard, change the selected option to "Place all certificates in the following store"
  6. Click Browse. In the Select Certificate Store window, scroll down and select Trusted People and click OK
  7. Click Next. A "Completing... " screen appears
  8. Click Finish

As an alternative, you can import the certificate from the Appx package (like a customer would) and in this case the password won't be requested:

  1. In File Explorer, right click an Appx that you've signed with the certificate (most likely the Appx package you want to install) and choose Properties from the context menu.
  2. Click the Digital Signatures tab
  3. Click on the certificate and choose Details
  4. Click on View Certificate
  5. Click Install Certificate
  6. In the Store Location group, select Local Machine
  7. Click Next and OK to confirm the UAC dialog
  8. In the next screen of the Certificate Import Wizard, change the selected option to "Place all certificates in the following store"
  9. Click Browse. In the Select Certificate Store window, scroll down and select Trusted People and click OK
  10. Click Next. A "Completing... " screen appears
  11. Click Finish (agreeing to the following confirmation dialog if displayed)

These are steps I borrowed from Microsoft, of course, but worth sharing, as they are critical to be able to do local debugging or your applications once deployed into an Appx package. Remember that file access rules and even WinRT API call rules are different for applications executed via an Appx package and the Windows Desktop Bridge, so you need to do adequate testing in this scenario.


Categories: News, Blogs, and Tips

Further Information About RAD Studio Berlin Update 2

Fri, 11/18/2016 - 01:54

Here is some further information and links related with the recent Update 2 release of Delphi, C++Builder, and RAD Studio Berlin 10.1.

More official info

- The official press release can be found at

- The specific page of the web site with update 2 info is (a bit hidden) at

- The blog post by Stephen includes all release videos: see

The Special Offer

If you haven't updated to 10.1 Berlin and are not on Update Subscription, there is a special offer until the end of November to celebrate the release: 10% off Professional, 15% off Enterprise and 20% off Architect. Read about this and other active offers at

Issues, Workarounds, Etc

- Issue with winapifamily.h (for C++Builder) explained at

- Deferring of C++ Rename Refactoring covered at

- Startup problems and fixes by Daniele at

And A Nice Tweet

A nice tweet I saw. Well, we call it CodeInsight, but the fix around static arrays causing trouble was done and well received:


Categories: News, Blogs, and Tips

RAD Studio Berlin 10.1 Update 2 Anniversary Edition Available

Tue, 11/15/2016 - 01:05

Embarcadero released today the second update of RAD Studio, Delphi, and C++Builder 10.1 Berlin, with significant new features (mostly focused on Windows 10 Anniversary Update) and quality improvements.

The features were announced in last week webinar available as a replay at and include support for Windows Desktop Bridge deployment in the IDE, a new CalendarView control, new designers called QuickEdits, and much more. You can read a detailed description of these new features in the docwiki help page at

The update has also several quality improvements and bug fixes, including the most voted issue on Quality portal, the problems with CodeInsight and static arrays. Other notable fixes include dynamic arrays optimizations (following regressions in Berlin), DataSnap issues, several DBGrid regressions fixes, C++ compiler improvements, REST clients calls with compressed data on mobile, and many others. You can find the list of publicly reported bugs fixed in this update at

All customers with an active update subscription can download the new version of the product at one of the following links:

- The GetIt based Web installer can be found at

- The ISO with the traditional installer is at

Notice that if you want to preserve your registry setting in this uninstall/re-install cycle you should use the same installer technology of your most recent install. Before you ask, the GetIt based installer this time will ask you if you want to preserve your registry settings, and would make a copy and reapply them after the installation completed.

Hope you like the quality improvements and new features of Berlin Update 2. And stay tuned to CodeRage today and the coming two days.

Categories: News, Blogs, and Tips

CodeRage XI Next Week

Fri, 11/11/2016 - 03:23

The 11th edition of the online CodeRage conference is kicking off next Tuesday. As usual it features dozens of technical sessions by Embarcadero speakers, MVPs, and tech partners. Don't miss the most comprehensive online event of the year for Delphi and C++Builder developers.

Titled Productivity, Platforms and Performance, CodeRage XI is going to be informative but also a lot of fun. While you'll be able to view the session replays later, only attending them live give you the opportunity of asking questions and of interacting with other attendees. 

The conference program, from Tuesday to Thursday, is kept up to date on the Embarcadero community at:

The conference offers sessions at different levels and for different audiences, covering most of the technologies in RAD Studio, and has specific parallel tracks for Delphi and C++Builder.

I'll be giving the Delphi keynote on Tuesday, after the conference kickoff -- at 7AM PST or 4PM Europe, and a session on Windows 10 and the Desktop Bridge on Thursday (which is a day reserved for customers on update subscription) -- again at 7AM PST or 4PM Europe. And I'll try to be online as much as I can during the conference, to help answering questions. I'll probably also blog quite a bit. Stay tuned.

Categories: News, Blogs, and Tips

A Delphi UWP App on Windows 10 Store

Fri, 11/04/2016 - 05:57

Using the Windows Desktop Bridge (aka Project Centennial), I've been able to publish a Delphi-based UWP application on the Windows Store, for Windows 10 Anniversary Update desktop user. This is great news as it proves in practice a long anticipated opportunity Microsoft is giving to developers with Win32/Win64 code bases. The desktop bridge, in fact, allows developers to take existing applications based on the Windows API and package them as UWP applications (or appx packages) to be distributed directly to Windows users or to be distributed (and sold) via the Microsoft store.

The specific app in question is a Win64 FireMonkey app, the Windows version of my (and my son) My Minifigures app that is fairly popular on Android (with over a quarter million downloads). The Windows version hasn't been clean up and optimized much, so it feels a bit odd -- hope to have time in the next few days to make it work better on Windows.

You can find the app here:

The point I want to make, of course, is not about the app itself but the fact that this is becoming a very interesting way to distribute applications built with RAD Studio. I showed the install process in the Berlin Update 2 Webinar we did yesterday (replays will become available) and we also explained in that same webinar how RAD Studio will make it extremely simple to create appx packages with IDE integrated support -- in a very similar way of creating mobile and macOS packages with the IDE. This is going to be another first, as (for what I know) Visual Studio still lacks integrated IDE support for the Windows Desktop Bridge.

As soon as we'll release Update 2 I'll follow up with a lot more technical details. If you want to get started, though, there are two steps you should do. The first is submit you Desktop Bridge app request to Microsoft at The second is to actually register yourself as an app developer with Microsoft, at There is a one time only fee of 19 USD/EUR or 99 USD/EUR for individuals or companies.

I'll follow up soon with the steps needed for store deployment, compared to what it is needed to create an appx package for direct use, something I already covered in this blog a few months ago.

Categories: News, Blogs, and Tips

RAD Studio Berlin Update 2 Announce Webinar Tomorrow

Wed, 11/02/2016 - 02:44

Tomorrow the RAD Studio PM Team (Nick, Myself, Sarina and David) is hosting a webinar introducing the new features in Update 2 for Delphi and C++Builder.

You might be surprised to learn that this update has bug fixes, but also significant new features. In fact, it is the first update ever to have feature work, as part of the new model based on update subscription and longer release cycles. This is the reason we are giving to this update an actual name "Anniversary Edition". 

From the invite: "RAD Studio Berlin Update 2 Anniversary Edition brings you major productivity enhancements around the Windows 10 Anniversary Update and the Windows Store, new VCL controls, IDE component editors and C++ refactoring."

Sign up for the webinar, held twice during the day, at:


Categories: News, Blogs, and Tips

Speaking at EKON 20 Next Week

Mon, 10/31/2016 - 09:24

Next Monday I'll speak at the 20th edition of EKON. This started at a multi-language, multi-tool conference but has recently been mostly focused on Delphi, although it does cover other technologies for developers. This year conference is the 20th and this is likely the longest running Delphi event, and one of the largest ones in Europe. I've spoken to many of them, probably well over a dozen.

This year conference is being held in Dusseldorf, November 7th to 9th, and you can find more information at There are sessions and tracks in German and in English, and the conference generally has an international audience. The list of speakers is fairly significant, with many from Germany but a few international ones, starting with Ray Konopka.

I'm going to give a keynote on the status of Delphi, present a session introducing RAD Server / EMS form a technical perspective, and delve into Centennial support. Of course, I'll be around both conference days, for any question and follow up.


Categories: News, Blogs, and Tips

Delphi Blogs of the Week/Month #47

Tue, 10/18/2016 - 01:51

Here is another of my periodic blog posts with news and links from the Delphi and RAD Studio worlds.\


Embarcadero Conference in Brazil on October 26th: For information see

​CodeRage 11 Online Conference Call for Papers:

​I'll be speaking at EKON 20 in Germany (but that's a conference with an English track for all European attendees): The speakers list and topics are pretty interesting.


InterBase ToGo Update for Android by Stephen at

The actual hotfix (required to submit to Play Store) is at

Blog Posts

Jim's experiments with compile times in Delphi, using generics:

Accessing comma-separated files in Delphi by Holger at

​When Migrating to FireDAC, You Must Understand UpdateMode by Cary at

Using Advantage? Enhance TAdsQuery to include Query Callback by Joachim at

Very interesting article on running Delphi applications on Linux using Wine at

Upgrading from Delphi or C++Builder Berlin Starter edition to higher editions by Sarina at

Not a new blog post, but an interesting StackOverflow question to keep a link to, covering a "List of Delphi language features and version in which they were introduced/deprecated" at

Categories: News, Blogs, and Tips

Resuming the DelphiRazor Library Project

Wed, 10/12/2016 - 05:50

Given I've updated the library for 10.1 Berlin for a personal project, and also added a few new features, I decided to make my Delphi Razor HTML scripting library public again.

DelphiRazor is a limited clone of ASP.NET Razor notation by Microsoft. In short, you can use spacial tags in your HTML files invoking server side processing for them, and get placeholders replaced by actual data from the server application (or a database, of course). With some logic, you can repeat HTML blocks (for each record in a dataset) of use conditional elements. In practice, there is a PageProducer type of component to hook individual pages to a WebBroker application, or you can sue the Engine component and automatically process an entire directory (or more complex folder structure).

The interesting element of this approach is you can easily embed this DelphiRazor tags into any modern HTML app. I recently worked on a Boostrap + JQuery site and adding dynamic database data to it ended up being as simple as using traditional web scripting languages. See this page I created for my wife activity with dynamic image filters and other nice JS tricks, with the data provided by DelphiRazor:

The core library, a demo, some preliminary unit tests are now on:

I'm also cleaning up and updating the rather detailed documentation, and plan moving it to the GitHub project wiki format for easier collaboration (I've started it here: More than willing to get help (but notice that I licensed this also to Embarcadero, so contributions can possibly also end up in the product -- it is already in use internally).

Near terms plans are to finish doc migration and write tests along side, next re-enable some of the features like sessions and permissions with a general architecture, third re-connect it to DataSnap -- as in the original version -- but also to EMS / RAD Server. Could be also hook into other third party libraries, of course.

Categories: News, Blogs, and Tips

New Windows 10 Style Calendar Control Coming Soon

Wed, 10/05/2016 - 03:59

RAD Studio 10 Seattle introduced several new VCL UI controls that mimic the WinRT UI controls. Two more are coming in Update 2, a new calendar control and a matching calendar picker.

The first set of VCL controls specifically introduced to mimic the WinRT UI part of Windows 10 were ActivityIndicator, RelativePanel, SearchBox, SplitView, and ToggleSwitch. Notice that while these controls match the WinRT / Windows 10 UI, they are implemented in pure VCL code, so an application using them will equally run on Windows 7 and Windows 8. The controls are depicted in summary below. 

Now in the coming Update 2 of Delphi and C++Builder 10.1 Berlin, Embarcadero is going to introduce two more such controls, which are two implementations of the same concept, a modern looking calendar control matching the WinRT UI specification. One is the plain calendar taking up some screen real estate, while the second is a picker or combo box type of control, with the date displayed and the calendar appearing in a popup on request.

As you can see below (at design time in the IDE) the calendar has multiple views, with a month view and a year view. ther eis also a decade view to select the year. Transitions among the views are animated and rather smooth. Overall, this is much modern looking than the good old VCL calendar, based on the WinXP UI model.

This will not be the only new feature coming in Update 2, stay tuned for more information and refer to the latest roadmap for an overview of what to expect in coming months.

Categories: News, Blogs, and Tips