Original author(s) | Borland |
---|---|
Developer(s) | Embarcadero Technologies |
Initial release | 1995 |
Development status | Active |
Operating system | Cross-platform (Windows, Mac OS X, iOS, Android) |
Type | GUI |
License | Commercial |
Website | http://www.embarcadero.com/kr/products/rad-studio; |
The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal.
The VCL was developed by Borland for use in, and is tightly integrated with, its Delphi and C++Builder RAD tools.
In 1995 Borland released Delphi, its first release of an Object Pascal IDE and language. Up until that point, Borland's Turbo Pascal for DOS and Windows was largely a procedural language, with minimal object-oriented features, and building UI frameworks with the language required using frameworks like Turbo Vision and Object Windows Library. OWL, a similar framework to MFC, required writing code to create UI objects.
A key aim of the VCL combined with the Delphi language was to change the requirements of building a user interface. (For context, the Delphi variant of Pascal had a number of innovative object-oriented features, such as properties and runtime type information, inspired by Modula and Smalltalk.) At the time, much UI code work required creating classes inheriting from other classes, and customized objects were often not reusable (for example, a button that performs a specific action cannot be reused in a different application.) UI code was also complicated, forcing the programmer to understand and use the Windows API, manage GDI resources, etc. Finally, a visual user interface arguably should be designed visually, and yet most tools to do so - at the time, mainly Visual Basic - did so in terms of the designer outputting code, creating a fragile, un-manually-editable situation - a problem that still persists today with many UI frameworks, particularly C++-based ones such as Qt.
The combination of the Delphi language and the VCL framework written in that language addressed these by: