RAD Studio 10.4.1 is now available! Learn more. Looking for discounts? Visit our Special Offers page!
News

Ribbon Controls in RAD Studio 10.1 Berlin

Author: John T. Haller

A few Delphi and C++Builder developers who moved to 10.1 Berlin are wondering what happened to the VCL Ribbon controls and how to get them. Here is the full story.

A Tale of the Fluent UI (or Office UI)

Let me start from the beginning, while trying to keep the story short. The Ribbon VCL controls offer an implementation, natively done in the VCL with no external dependencies, of Microsoft Fluent UI (also know as Office UI). Given Microsoft has a patent on this UI (debatable, I know) using the controls required to accept a license from Microsoft, originally available at https://msdn.microsoft.com/en-us/office/aa973809.aspx. In the past RAD Studio installation alerted that accepting that license was required for legally using the controls.

Later on, Microsoft built an actual SDK (in Windows 7 and above, also back ported to Vista) to support building applications with the Fluent UI. So far so good. Afterwards, they retired the original license. Any developer who had already accepted Microsoft Fluent UI license can still build a clone UI, but developers cannot obtain that license any more. You can see this reported, among others, in Wikipedia at https://en.wikipedia.org/wiki/Ribbon_(computing):

The Microsoft Ribbon Licensing Page has been retired, therefore it is no longer possible to license the ribbon control from Microsoft.

This is why we had to pull the Ribbon VCL controls from the core RAD Studio product, as we have no way to grant all customers a license or indicate how to obtain one. This doesn’t mean we are removing the controls completely. While we don’t expect to have the Ribbon VCL controls as part of the product and covered by support, we are in the process of making the Ribbon controls available in the GetIt Package Manager, for any developer who has a valid license with Microsoft (something you have to determine yourself, of course). This was supposed soon after the 10.1 Berlin release, should be coming shortly.

Ribbon Future Options for RAD Studio Developers

Overall, though, this change of direction from Microsoft (which actually happens a few years back), requires rethinking the use of these controls. I’d offer 3 alternatives:

If you have a license and want maximum compatibility with existing code, you can keep using the existing Ribbon controls. Shortly we’ll make the official package available on GetIt. We are also assessing how to keep fixing bugs and updating this library over time. This might involve the community.
You can switch to using an implementation of the Ribbon SDK from Microsoft. One set of VCL controls wrapping that implementation and called Ribbon Framework is available in the https://github.com/TurboPack/RibbonFramework library and it is already hosted in GetIt (and was hosted also for 10 Seattle). This has no legal limitations, and the team might also need help to keep this project moving. And thanks to Joachim Marder and the team behind these controls
You can consider moving away from the Ribbon UI. But this is more of a UI discussion I don’t really want to focus on in this blog post.

As it should be clear from reading this blog post, it was never our intention to stop supporting the VCL Ribbon controls, but we don’t have a way to do this legally for all of our customers. I know other component vendors have different interpretations of the legal status, but we did check with several sources (including directly with Microsoft) and we are convinced that there isn’t another option. Once the VCL Ribbon controls will be made available in GetIt, consult with your legal counsel about using them.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Learn More About Upgrading

Related posts
Delphi

Change notification bar color on Android

Delphi

How to Get IMEI on Android Devices with DELPHI 10.3 Apps

C++

#CodingResolutions: Programming Fundamentals - Functions

C++

#CodingResolutions: Strings and the RegExpDemo Sample App

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES