What’s Coming in Delphi 12, New Tab Document Interface

Delphi 12 is the next major release of Delphi, although there is no specific release date yet, and of course, as usual, any feature discussed here is not commited until the GA release of the product, but this release will bring a whole lot new and exciting features to Delphi. A few features that I want to highlight are:

  • New Installation Screen which makes installation much easier. the new installer will show only one screen to setup all options
  • Support Android API level 33
  • SKIA integration. This integration also has some exclusive features not found in the open source project, which is Vulcan Backend.
  • Long and multiline string literal, now you can type a multiline string without the need to close each line of string with quote and a line feed character.
  • A reworked MDI Support. Updated MDI wizard that will produce Tab Document Interface with MDI Form that supports High DPI
  • Firemonkey Split Screen support on mobile apps to support large screens, so we can use only a portion of the screen
  • Icon generator tool where now you can only define a single image, and Delphi will generate all image sizes required by each platform’s icons and splash screen, and also support for Android Adaptive Icon.

Among the new features mentioned before, I want to talk more on the new MDI Form in Delphi. The new MDI Form in Delphi is built to support for High DPI and modernize the MDI Form with styles. There is a new component, TFormTabsBar, that uses the new MDI support to manage MDI Child Form in tabs. This component will create tabs for each MDI Child Form so we can navigate each child form easily.

This TFormTabsBar component is actually an implementation of IFormVisualManager where we can handle and manage our MDI Child Form. Right now, this component supports basic tab management, like close tab, menu button that will list all MDI Child Forms, moving tabs by drag and drop. There are also properties to define the FormTabs behaviour, like hiding the child form when closed, setting an indicator when a form is invisible.

The current TFormTabsBar do not support double click to close tab, but this can be easily done with the help of ActiveMDIChild method, which will return current active MDI child form. Just add the OnDoubleClick event for the TFormTabsBar component and write a single code like below:

procedure TMainForm.FormTabsBar1DblClick(Sender: TObject);
begin
  ActiveMDIChild.Close;
end;

“This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.”