12 times 12 new features in Delphi 12

RAD Studio 12 includes some great improvements for C++Builder and the launch webinar and other online content highlights it. However, it is also a fantastic release for Delphi developers. Someone commented, it looks like there is little for VCL. That's not true. I don't remember a new release with so many new VCL features. So I started listing them and got 36 bullet points (in this blog post), including some very significant changes and a few minor, but still relevant, improvements. Plus many FireMonkey ones. And dozens of other improvements in the RTL, the Delphi language, the IDE, the installer, the internet libraries. I compiled a dozen improvements for each of these areas.

In the end, I compiled 12 lists with 12 improvements each for Delphi 12. So this is not a list of 12 improvements for Delphi 12. It's a list of 12 x 12 = 144 improvements, plus half a dozen for native Windows bringing the total to a whopping 150 -- excluding all the existing improvements for C++Builder, as here I want to underline the Delphi side (but most of the features below are in fact for both languages).

Ready? This is the first blog post of my12 x 12 features for Delphi 12 list, with 3 lists. These 36 are all VCL improvements. All of these equally apply to C++Builder 12 and RAD Studio 12. Stay tuned for more blog posts.

In VCL: MDI and Forms management

  1. MDI Reworked for HighDPI and VCL Styles support
  2. Child forms can now have a new modern flat border (the new property is TStyleManager.ChangeChildFormSystemBorder)
  3. MDI Child disabled border icons are not drawn
  4. The Parent property works for nesting any form in any other form, with full border management
  5. A significant MDI cleanup and improvements
  6. The brand new TFormsBar control
  7. The Auto Hiding of minimized child windows
  8. The IFormVisualManager Interface 
  9. The VisualManager property of the TCustomForm class
  10. The updated MDI Wizard
  11. A new ShowInTaskbar property for TForm
  12. A new CreateScaledNew constructor in the TCustomForm class

 

The MDI app generated by the wizard

144 mdi

VCL foundations and designers

  1. TFont.Size property adapts to different DPIs: new TFont.IsDPIRelated, TFont.IsScreenFont, TFont.ChangeScale method, TFont.ScaleForDPI method 
  2. A new String List editor
  3. A multiline string editor
  4. A Quick Panel configuration
  5. A Quick Radio Group configuration
  6. A Quick Button configuration
  7. The Control child enumerator accessible via GetControls method of the TControl class
  8. New MsgDlgIcons global variable
  9. New TDoubleBufferedMode enumerated type, new DoubleBufferedMode property of that type, and a new CanUseDoubleBuffering method for controls
  10. New TWinControl ChildHandlesNeeded method
  11. The VCL StyleAPI.inc file is now replaced by two specific and clean units: Vcl.StyleAPI.pas and Vcl.StyleBitmap.pas
  12. Additional image formats in TImage via Skia

 

The new string list editor

144 listeditor

 

VCL Controls

  1. Tile View support to TListView (including new TileOptions and TileColumns properties)
  2. TGroupCollection now has two Items properties
  3. New ToolButton style: tbsWholeDropDown
  4. TNumberbox control has an additional “nbmInt64” mode accepting 64-bit numbers in input
  5. ActivityIndicator has support for custom color (IndicatorCustomColor property), new RotatingLines and Refresh predefined icons and more enhacements 
  6. TControlList has new SelectedItemsCount and SmoothMouseWheelScrolling properties
  7. TControlList adds support for more element types such as TControlListCheckBox and TControlListRadioButton 
  8. TWICImage and TImageCollection now have a Dormant() method to reduce GDI usage
  9. The new TSkLabel Skia-based component for VCL
  10. The new TSkPaintBox Skia-based component for VCL
  11. The new TSkAnimatedPaintBox Skia-based component for VCL
  12. The new TSkSvg Skia-based component for VCL

 

The new Activity Indicator predefined icons

144 activity