• Blog
  • Visual Component Library

Visual Component Library

Development

Publish date:
Discover more of what matters to you

VCL — Visual Component Library

You can get a detailed description from Wikipedia or Embarcadero official website, but we would like to try to describe this term in our own words which may help you to understand it better.

VCL is a list of Delphi/”C++ Builder” core programming language classes, written in Object Pascal, with a huge hierarchy for building Windows applications. It’s based on OOP (Object Oriented Programming) principles. VCL hides from a developer and implements realization of all layers of programming business logic for building Windows applications with forms. If you create a new Delphi VCL-project, you will have an application with one empty form, then you can click “Run” button and as a result you will have a new executable with a Windows form. And that’s what VCL is doing — all logic of implementation of form creation is hidden from a developer and is realized inside the VCL framework. A developer has to think only about his own application logic and not  about the implementation of a core Windows routines. Of course, a developer still can override the  logic of each layer of representation, i.e. VCL components classes, their properties, events, etc.

When is VCL development usually applied?

If you are planning to develop a Windows native desktop Delphi or C++ Builder application, VCL is the best solution, as you will have low-level platform support with full functionality and without any compromises. VCL is based on WinAPI, COM, platform messages and other Windows low-level routines. Delphi or C++ Builder compile VCL applications directly to the Win32/Win64 low-level byte-code. 

What’s the difference between VCL and FMX?

If we compare FMX with VCL, we will see that FMX has a similar logic, i.e. a similar list of classes, but it is adopted for building cross-platform applications. FMX is an abbreviation for Firemonkey, and Firemonkey is a cross-platform framework for building native cross-platform apps using Delphi. FMX classes and forms have common properties for all platforms and a developer can also customize them and get access to platform specific features (as you know, forms in Windows, macOS, Linux have differences). This is why FMX  can be viewed as a compromise, which tries to implement everything for everybody, i.e.it is a support form with utilized functionality for each platform. Realization of each form and feature is different for each platform and Firemonkey (FMX) hides this realization. 

What will happen to VCL in the future?

Despite all the benefits that we have thanks to VCL, we should think about potential future risks, especially about those that are related to Microsoft business. Now it’s difficult to say what Microsoft will do with Windows in 5-10 years from now. There are so many questions. Will we have Win32/Win64 support for new Windows releases or not? Will Microsoft allow only high-level development and code execution or low-level development will be allowed as well? Now we can see only indirect signs. However, judging by these signs (especially, the introduction of new features of Windows 10 looks very optimistic), we can say that Windows is still committed to developing with the usage of COM and WinAPI. That’s why we don’t think that something will change in the near future and in 10 years as well.

Subscribe to our newsletter and get amazing content right in your inbox.

This field is required
This field is required Invalid email address
By submitting data, I agree to the Privacy Policy

Thank you for subscribing!
See you soon... in your inbox!

confirm your subscription, make sure to check your promotions/spam folder

Tags

Subscribe to our newsletter and get amazing content right in your inbox.

You can unsubscribe from the newsletter at any time

This field is required
This field is required Invalid email address

You're almost there...

A confirmation was sent to your email

confirm your subscription, make sure to check
your promotions/spam folder