My Top 3+1 features in the new RAD Studio 11.2 Alexandria

Yes, RAD Studio 11.2 Alexandria is finally out - now we can talk about it :-) This new release builds on the feature set of 11.x, enhancing existing features throughout the product. I this release we’ll not find some huge new features, but while 11.1 was primarily focused on quality, this new release will have a mix of features and fixes.

Starting from the nice new splash screen which is clean and polished. Here’s how the splash screen looks like with a couple of 3rd party product installed.

Splash Screen

A couple of technically hard-to-do-things released in this version are surely the new support for Delphi iOS Simulator and the LLDB support for Delphi for Linux. Personally I really appreciate the support for the new Android API Level 32, considering that in a couple of months it will become mandatory to publish apps on Google Play Store.

This is an mere introduction, but here’s the time for another of mine…

Top 3+1 features in strictly random order!

1) LLDB support in Delphi for Linux64

Since the very forst version, Delphi’s Linux toolchain used GDB for debugging. In Delphi 11.2 Alexandria EMBT switched to LLDB, providing a strong quality improvement both in features and in Delphi language syntax support. I’m having some troubles to setup the new PAServer on WLS2 however I really appreciate the direction about LLDB and I’m waiting for the adoption of LLDB also for the Windows compilers.

In case you get an error from the PAServer complaining about a symbolic link target which doesn’t exist, you can fox it installing Python (sudo apt install python3 on debian based distros) and linking the correct shared-object file (something like a dll in the Windows world) to the symbolic link.

I installed PAServer in my user directory and used the following commands to fix the Symbolic Link problem:

cd /home/daniele
cd PAServer-22.0
mv libpython3.s0 libpython3.s0.old
ln -s /lib/x86_64-linux-gnu/libpython3.10.so.1 libpython3.so

Then restart your PAServer the Symbolic Link libpython3.so shuld point to the correct so

2) Markdown support in code editor

As those of you which know me already known, I’m a big fan of Markdown. I wrote my last book (you know, DelphiMVCFramework - the official guide, available also as hardcopy) completely in Markdown and this has been really useful to check, versioning, correct and generally speaking, helped a lot in the (very complex) process required to write a book. Just to have another example, contents of this blog are written in Markdown, so just guess how I can be happy to see my beloved Markdown supported natively by my beloved Delphi 🙂.

But, what does precisely mean “Markdown support in Delphi”? Don’t worry! We’ll continue to write code in Object Pascal, but now is possibile to add *.md files in your project, editing like plain text, and see them rendered in HTML directly in the code editor.

This is an example of Markdown code.

and, navigating to the preview tab, you will get the following.

Yes, I like it a lot!

You can also set a Markdown file as the “starting” screen of your project using the menù Project --> Project Page Options. I know, the menu name is not very intuitive but it is the hystorical name.

However, setting the “Project page” with a .md file (optionally with a resource folder where images are stored) the next time you will open the project, the main screen will be the HTML page rendered from the Markdown file and not the main form or something else.

The .md should be stored in your VCS (eg. git) so that it will belong to the project just like any other file and, being plain text, can be easily versioned, merged, reverted etc.

We are updating all the public DMSContainer Samples to use the “Project Page” so that the users, opening the project, can easily read what the demo is intended to explain, which configuration must be done on on DMSContainer to let the demo to work etc. Quite useful, and we hope DMSContainer users will be happy for that.

3) Inactive Code in the Code Editor

It is quite common to have code that is conditionally compiled, for specific platforms or other reasons. When you conditional logic become complex, it is not simple to visually understand which piece of code is compiled when. In Delphi 11.2 Alexandria the code editor will now show code that is inactive – not compiled due to undefined macros – differently to code that is active and will be compiled. In case of complex IFDEFs, this feature allows you to immediately spot the active code for the current platform and build configuration. In the next image you can see a piece of code from the LoggerPro project which contains (in this case quite simple) conditional defines which compiles different code in case of desktop/server compiler and in case of mobile compiler. When the conditionals become more complex the usefulnes is quite high.

I tried hard to fit just 3 things in my “Top 3” but there is always a 4th thing… so here it is

4 bonus) Editor Tabs Improvements

Delphi 11.2 Alexandria adds the ability to show in different colors the tab for files of different types (regular source code, files opened while debugging, configuration files, and so on).

Custom colors can be turned off, such as for visual clarity reasons. Additionally, while I use it a lot and don’t know why one should want to disable it, the ‘X’ close button on tabs is optional and can be configured in the following options dialog.

How much is difficult to migrate to Delphi 11 Alexandria?

It depends, obviously, but just before writing this post DMVCFramework, the most popular Delphi framework on github, has been updated to be compatible with the new Delphi 11 Alexandria - just a 20 minutes job to make compatible some 3rd part libraries… this is one of the reason why I love Delphi - it value your time!

Conclusions

RAD Studio 11.2 Alexandria consists of some new features and a lot of enhancements and quality improvements. This is a good move for Embarcadero. Obviously, there are bugs still open (as with any non trivial piece of software) however this release is another step in the right direction. Keep going Guys!

Migration Note: In the meantime DMVCFramework, the most popular Delphi framework on github, has been updated to be compatible with the new Delphi 11.2 Alexandria - in this case, a recompile has been enough… this is one of the reason why I love Delphi - it value your time!

This is my Top 3+1 features in RAD Studio 11.2 Alexandria, what’s yours?

Comments

comments powered by Disqus