Est. 1995 Intermediate

VCL

Borland's Visual Component Library — the component framework behind Delphi and C++Builder that defined drag-and-drop RAD development and still powers native Windows applications today.

Created by Borland (chief architect Anders Hejlsberg)

Paradigm Object-Oriented, Component-Based, Event-Driven
Typing Static, Strong (hosted in Object Pascal and C++)
First Appeared 1995
Latest Version VCL in RAD Studio 13.1 Florence (2026)

The VCL (Visual Component Library) is the component framework at the heart of Borland’s Delphi and C++Builder, introduced with Delphi 1.0 in 1995. It is not a standalone programming language but a deeply language-integrated application framework: Object Pascal gained properties, published visibility, method pointers, and rich runtime type information specifically so that the VCL could exist. The combination produced something genuinely new for its time — a visual designer where dropping a button on a form manipulated a real, compiled object whose properties appeared in an inspector and whose events wired to ordinary methods. That “component way” of building software made Delphi famous, shaped Microsoft’s Windows Forms several years later, and still ships today in RAD Studio, where thirty-year-old VCL codebases continue to compile into fast, native Windows executables.

History and Origins

By the early 1990s Borland’s Windows development story rested on Turbo Vision (a character-mode framework for DOS) and the Object Windows Library (OWL), a C++-style class wrapper over the Windows API. Both required substantial code to get a window on screen. Meanwhile Microsoft’s Visual Basic (1991) had demonstrated that drag-and-drop form design could bring Windows programming to a mass audience — but VB was interpreted, produced comparatively slow programs, and made building new controls difficult.

Borland’s answer, developed under chief architect Anders Hejlsberg, was to fuse the two worlds: Visual Basic’s design-time experience with a compiled, object-oriented language. The result launched on February 14, 1995 as Delphi 1.0, with the VCL as its centerpiece. Every control on a Delphi form was an instance of a real Object Pascal class descending from TComponent; the same language used to build applications was used to build the components themselves, so third parties could extend the palette with fully native controls — something VB’s opaque VBX model never allowed.

The framework’s reach widened quickly. Delphi 2 (1996) recompiled the VCL for 32-bit Windows, and C++Builder 1.0 (1997) exposed the Pascal-implemented framework to C++ programmers through Borland’s compiler extensions, an unusual cross-language feat that remains part of the product today. Ownership of the framework passed from Borland to its CodeGear subsidiary in 2006, to Embarcadero Technologies in 2008, and under Idera since 2015 — but VCL development never stopped.

Design Philosophy

The VCL embodies a handful of principles that were radical in 1995 and remain instructive:

  • Components over classes. The unit of reuse is the component: a class descending from TComponent that can be registered on a tool palette, dropped on a form, and configured visually. Components may be visual (buttons, grids) or non-visual (timers, database connections), and both kinds participate in the same designer.
  • Properties, methods, events (PME). Customization happens by setting properties and attaching event handlers — delegation rather than subclassing. A TButton is used as-is, with its OnClick pointing at one of your methods, instead of being subclassed to override a click handler.
  • The language serves the framework. Object Pascal’s published section exposes properties to runtime type information, which is what lets the Object Inspector enumerate and edit them, and what lets forms be streamed to and from .dfm files. Form streaming — serializing an object graph as data rather than generating code — was a defining architectural choice.
  • Native to the metal. VCL controls wrap the underlying Windows controls and API rather than repainting their own imitations, so VCL applications look, behave, and perform like first-class Windows citizens and inherit OS behavior automatically.
  • Ownership-based lifetime. Every component may have an owner (typically its form); when the owner is freed, its components are freed with it — a pragmatic memory-management convention that predates widespread garbage collection.

Key Features

A minimal VCL form unit shows the shape of the framework — the class mirrors what the visual designer produces, and the .dfm resource holds the streamed property values:

unit MainForm;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms,
  Vcl.StdCtrls, Vcl.Dialogs;

type
  TFormMain = class(TForm)
    EditName: TEdit;
    ButtonGreet: TButton;
    procedure ButtonGreetClick(Sender: TObject);
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

procedure TFormMain.ButtonGreetClick(Sender: TObject);
begin
  ShowMessage('Hello, ' + EditName.Text + '!');
end;

end.

Highlights of the framework include:

  • A deep, coherent class hierarchy: TObjectTPersistentTComponentTControl, with TWinControl for windowed (handle-owning) controls and TGraphicControl for lightweight painted ones
  • Several hundred stock components spanning UI controls, dialogs, data access, and connectivity, plus one of the richest third-party ecosystems in Windows development (DevExpress, TMS, the open-source JEDI/JVCL project)
  • Data-aware controls that bind grids, edits, and lists to database datasets through TDataSource — visual database front-ends with little or no code, a headline feature since 1995
  • VCL Styles (since Delphi XE2, 2011) for restyling entire applications with themed skins without changing component code
  • Design-time/runtime packages that let component vendors ship libraries which plug into the IDE’s palette and inspector
  • LiveBindings and modern touches such as Per-Monitor V2 high-DPI support and a WebView2-based Edge browser control in recent releases

Evolution

The VCL’s history tracks the Windows platform itself: 16-bit in 1995, 32-bit in 1996, full Unicode in Delphi 2009 (which converted the framework’s strings to UTF-16 — widely regarded as the largest breaking change in its history), 64-bit Windows in Delphi XE2 (2011), high-DPI modernization through the RAD Studio 10.x releases, and native Windows on Arm compilation arriving with RAD Studio 13.1 in March 2026.

Its road not taken is equally telling. Borland twice built cross-platform siblings rather than porting the VCL away from the Windows API it wraps: CLX (2001), the Qt-based library behind Kylix for Linux, which was later abandoned, and FireMonkey (2011), the vector-based, GPU-rendered framework that today targets Windows, macOS, iOS, and Android within the same RAD Studio product. The VCL itself stayed deliberately Windows-native — a scope limitation that is also the source of its longevity, since it never had to compromise fidelity to its one platform.

Current Relevance

The VCL remains in active development as one of the two application frameworks shipping in Embarcadero’s RAD Studio, with RAD Studio 13 Florence (September 2025) and its 13.1 update (March 2026) the current releases. Embarcadero continues to invest in it — the new 64-bit IDE is itself a VCL application, and recent releases added AI-oriented components alongside the framework’s traditional strengths. A substantial industry of maintained third-party component suites, an annual conference circuit, and the open-source Lazarus project’s VCL-compatible LCL all attest to a living ecosystem. The framework’s center of gravity is enterprise and commercial desktop software: decades-old line-of-business systems, vertical-market applications, and shrink-wrapped Windows utilities that need small, fast, dependency-free native executables.

Why It Matters

The VCL is arguably the most influential component framework in the history of desktop development. It proved that visual, drag-and-drop design and compiled native code were not opposites — and the proof traveled. When Anders Hejlsberg left Borland for Microsoft in 1996, the component model he had architected for Delphi visibly informed the design of Windows Forms and the .NET component idiom of properties, events, and designers; the free-software world reimplemented the framework outright as Lazarus’s LCL. The PME pattern, the palette-and-inspector IDE, form streaming, and third-party component marketplaces all became standard equipment of GUI toolkits after the VCL demonstrated them at scale. Thirty-one years on, still compiling, still shipping, it stands as a rare example of a 1990s framework that neither ossified nor lost its identity.

Timeline

1995
Borland launches Delphi 1.0 on February 14 at the Software Development Conference in San Francisco; its Visual Component Library brings drag-and-drop form design backed by real compiled Object Pascal components to 16-bit Windows
1996
Delphi 2 moves the VCL to 32-bit Windows, recompiling the component framework for Windows 95 and NT
1997
C++Builder 1.0 ships in February, making the Object Pascal-implemented VCL directly usable from C++ — one framework now serves two languages
2001
Borland releases Kylix for Linux with CLX, a cross-platform VCL-like library built on Qt; CLX is later abandoned while the VCL itself stays Windows-native
2006
Borland moves its developer-tools business, including Delphi and the VCL, into the CodeGear subsidiary
2008
Embarcadero Technologies acquires CodeGear; Delphi 2009 ships in August with a fully Unicode-enabled VCL, converting the framework's string handling to UTF-16
2011
Delphi XE2 (September) delivers a 64-bit Windows VCL and introduces VCL Styles for skinnable, themed applications; FireMonkey debuts alongside it as the cross-platform sibling framework
2015
Idera acquires Embarcadero, continuing VCL development under the RAD Studio product line
2018
RAD Studio 10.3 Rio adds VCL support for Windows 10 Per-Monitor V2 high-DPI scaling, modernizing the framework for mixed-density displays
2025
RAD Studio 13 Florence (September 10) ships with a 64-bit IDE — itself a VCL application — plus new AI components for VCL and FireMonkey
2026
RAD Studio 13.1 (March) adds Windows on Arm as a native Delphi compilation target, letting VCL applications run on Arm-based Windows devices without emulation

Notable Uses & Legacy

Skype

The original Skype desktop client for Windows — the application that carried the service to hundreds of millions of users before Microsoft's acquisition — was written in Delphi with a VCL user interface.

Inno Setup

Jordan Russell's free Windows installer builder is written in Delphi and used by a huge number of projects — including Microsoft's Visual Studio Code installer on Windows.

FL Studio

Image-Line's digital audio workstation, one of the world's most popular music production packages, is developed with Delphi and its VCL-based tooling.

Total Commander

Christian Ghisler's venerable dual-pane file manager, in continuous development since 1993 as a shareware staple of the Windows power-user world, is written in Delphi.

RAD Studio IDE

Embarcadero's own IDE for Delphi and C++Builder is itself a large VCL application — the framework is used to build the very tool that builds VCL applications, including the new 64-bit IDE in RAD Studio 13.

Language Influence

Influenced By

Object Windows Library (OWL) Turbo Vision Visual Basic

Influenced

Windows Forms Lazarus LCL FireMonkey CLX

Running Today

Run examples using the official Docker image:

docker pull
Last updated: