# Visual Component Library

Die Visual Component Library (VCL) ist ein GUI-Toolkit für Windows-Anwendungen. Sie wurde von Embarcadero, vormals Borland, Inprise und CodeGear, erstellt. Die VCL kann in den Programmiersprachen Borland Delphi, C++, C, C# verwendet werden. Sie wird von den meisten Borland-Entwicklungsumgebungen als Komponentensammlung benutzt.
Bei Anwendungen, die auch mit der Linux-Version des Borland Builders (Kylix) kompilierbar sein sollen, muss statt der VCL die CLX (Component Library for Cross- (X)-Platform Development) verwendet werden, da die VCL auf der Win32-API basiert. Für die .Net-Framework-Programmierung steht die VCL.NET zur Verfügung. Das im März 2007 erschienene Delphi for PHP wird mit einer speziell an die Programmiersprache PHP angepassten Version der VCL (VCL4PHP) ausgestattet, die als Open-Source-Projekt auf SourceForge veröffentlicht ist. Für die Entwicklung für mehrere Zielplattformen existiert seit Delphi XE2 nun eine neue plattformübergreifende Komponentenbibliothek namens FireMonkey. Diese gibt es derzeit für 32-Bit- und 64-Bit-Windows, macOS, Android und iOS.
Die VCL ist seit XE2 auch auf Windows x64 verfügbar und wird parallel zu Firemonkey weiterentwickelt. Inzwischen gibt es auch einen Stil-Mechanismus, mit dem das Aussehen von Anwendungen zur Laufzeit nach Belieben geändert werden kann. In den letzten Versionen wurde die Unterstützung für hochauflösende Bildschirme (HighDPI) immer weiter ausgebaut.
Mit einem in die IDE eingebauten grafischen Editor können mit diesen Bildschirmlayouts entworfen werden. Dabei ist es unter Verwendung visueller und nicht visueller Datenbank-Komponenten sogar möglich, zur Entwurfszeit Live-Daten verbundener Datenbanken anzuzeigen. Die VCL basiert auf einer Klassenhierarchie und der gesamte Quellcode der VCL wird mitgeliefert.
Für die VCL gibt es von Drittanbietern sowohl kostenpflichtige als auch kostenlose und Open-Source-Komponenten.

## Kapselung

Die meisten VCL-Softwarekomponenten kapseln Windows-Softwarekomponenten ein. Windows-Steuerelemente beispielsweise werden dabei erweitert. So fügt die VCL-Komponente TButton, die eine Schaltfläche einkapselt, dieser auch neues Verhalten ein, sie verfügt also über mehr Fähigkeiten. Andere Komponenten kapseln nur ein, ohne neues Verhalten einzuführen, beispielsweise ist das bei TEdit, das ein Textfeld einkapselt, der Fall.
Die VCL ist im Original in Object Pascal verfasst. Um die VCL auch mit dem Borland C++ Builder verwenden zu können, wurde ein spezieller Mechanismus entwickelt. Die jeweils aktuellen Versionen von Delphi bzw. dem C++ Builder verwenden die gleiche Codebasis der VCL. Früher hinkte der C++ Builder seinem Delphi-Pendant meist um einige Monate hinterher.
Delphi for PHP verwendet nicht die VCL-Codebasis von Delphi oder dem C++ Builder. Borland hat für dieses im Frühjahr 2007 erschienene Produkt die Software von Quadram zugekauft und mit einer an Delphi angelehnten IDE verbunden. Die VCL für PHP ist nun ein Open-Source-Projekt.

## Weitere Komponentensammlungen

* ECO (Borland C# Builder)
* CLX (Kylix (Borland Delphi für Linux))
* FireMonkey
* API (Microsoft Visual C#, Microsoft Visual …)
* SDL (Pascal)
* Turbo Vision – Klassenbibliothek für Turbo Pascal, die großen Einfluss auf die VCL hatte
* RTL, FCL und LCL, Entsprechungen der VCL in Lazarus und Free Pascal