If you are still on older versions of Delphi and C++Builder, there are many features you are missing, including some important VCL features you don't hear much about these days.

Let me focus on those, after recapping some major features.

Great VCL Features Added Recently

  • Improved VCL styling
  • Taskbar and JumpList components
  • Bluetooth
  • AppTethering to mobile (and other VCL) apps
  • Parallel Programming Library
  • Improved REST and BAAS support
  • Improved and new multi-tier architectures (DataSnap, EMS)
  • The whole FireDAC
  • VCL sensor components
  • Visual Live Bindings
  • Gestures recognition

Getting to the specifics of this blog post, There are other relevant features taht you might have missed (even in case you upgraded to a version of RAD Studio that supports them). Here is a short list. I'm pretty sure I'm forgetting many others.

Direct2D Canvas

Beside the classic GDI-based TCanvas, the VCL support the Direct2D-based TDirect2DCanvas painting class. Just create one for your form as a while or during an OnPaint event handler, and you can take advantage of extended graphics. A demo I showed at CodeRage is at code.marcocantu.com/trac/marcocantu_delphi_sessions_demos/browser/coderage9/VCLMigration/04_D2DGradients and its output is below:

WIC support in TImage

Window Imaging Component supports TIFF and other formats, but also a number of transformations (including rotation) on images. And you can keep using the good old TImage component, not a big change in your code. Some (old) code can be found at code.marcocantu.com/trac/marcocantu_marco-delphi-books/browser/delphi2010handbook/05/TiffViewer.


VCL Controls Features

Over the years, even basic controls like buttons and edits got enhanced features, from images in the buttons to text hints for edits. Components affected are Buttons, progress bars, edits, list views, headers. Not a very recent change for sure, but one a few developers have missed.  The following application shows some customized edit controls, and it does use the standard VCL TEdit:

Settings are in the following DFM file: code.marcocantu.com/trac/marcocantu_delphi_sessions_demos/browser/coderage9/VCLMigration/06_EditFamilyDemo/EditFamily_MainForm.dfm

Task Dialogs

The support include migration of old MessageDlg calls and the specific TTaskDialog component. A sample project with a progress bar in a task dialog can be found at code.marcocantu.com/trac/marcocantu_delphi_sessions_demos/browser/coderage9/VCLMigration/05_ProgressTask. The output is below:

New Common Dialogs

These include the TFileOpenDialog and TFileSaveDialog, which fully replace the old TOpenDialog and TSaveDialog components. A screenshot of the post-XP file open dialog, in action at design time (it has an Execute local menu for testing) is below:


That's all. Far from an exhaustive list, but I'm sure that some of you might have missed existing VCL features. Did I miss some other nice additional feature? Feel free to comment about them below or in your own blogs...

Of course, if you are still on old versions of Delphi, there is no better time to upgrade (even from very old versions, but only until the end of December) taking advantage of the current offers at  www.embarcadero.com/radoffer.