# Visual Component Library

Visual Component Library (bibliothèque de composants visuels), abrégé VCL, est un framework écrit en Pascal Objet par Borland pour ses outils de développements Delphi et C++ Builder. La VCL est souvent appréciée par ses utilisateurs pour sa grande clarté et sa cohérence globale. La première mouture de la VCL remonte à mai 1993.

## Aperçu global

Cette bibliothèque comporte à la fois des classes et des procédures permettant de concevoir des applications graphique sous Windows (la VCL encapsule de nombreux composants dont les fenêtres, les mémos, les zones de texte, les boutons, les pages de propriétés...) ainsi que des structures de données classiques (conteneurs, objets de synchronisation, fonctions utiles pour la gestion des chaînes de caractères, des dates, des exceptions, etc). La VCL fournit également les types Delphi correspondant aux types C définis par les en-têtes Windows standard et la traduction en Pascal Objet des API exportées par le système d'exploitation.
La VCL « traditionnelle » s'interface avec Win32. À partir de Delphi 8, Borland a porté la VCL pour .NET, ce qui permet à l'utilisateur Delphi développant sous ce framework de concevoir une application graphique soit avec WinForms (le système introduit par Microsoft et exploité sous Visual Studio avec Visual Basic .NET, C#, ou le C++ managé) ou alors VCL .NET.
Depuis Delphi 2009, la VCL supporte par défaut Unicode et gère (entre autres) la saisie de chaînes Unicode ainsi que les noms de fichiers non-ANSI. De nouvelles classes ont été introduites pour prendre en charge l'encodage et le décodage des chaînes dans des flux de données.
Depuis 2009, le support de la VCL .NET a été abandonné.
Avec Delphi 11 Alexandria sorti en septembre 2021 la VCL se refait une beauté en passant de pixels réels (PX) à des pixels indépendants de l'appareil (PID) permettant de s'adapter aux options d'accessibilité (zoom) de Windows et sur les écrans à haute définition (High DPI, 4K, ...) sans problèmes de scaling ni de différence entre le nombre de pixels physiques et de pixels affichés.
La VCL permet de générer des exécutables pour Win32 et Win64 fonctionnant de Windows XP à Windows 11 selon les API utilisées dans les programmes.
Un framework multiplateforme, fortement inspiré de la VCL, a été lancé en 2011 : Firemonkey. Il vient en complément de la VCL dans les versions récentes de Delphi, C++ Builder et RAD Studio.

## Composants

Delphi a des composants visuels et non visuels ; il est possible d'en importer de nouveaux. Pour chaque type d'application, on retrouve une multitude de packs de composants.
La bibliothèque recensant le plus grand nombre de composants est la JEDI Visual Component Library (JVCL), elle contient plus de 500 composants visuels et non visuels gratuits.

## Équivalent Linux

Lorsque Borland décida de porter Delphi sous Linux, elle créa une bibliothèque portable reprenant partout où c'était possible la même interface que la VCL : c'est la CLX.
Parallèlement la LCL ou Lazarus Component Library, équivalent libre de la VCL est développé avec le projet Lazarus. La LCL, contrairement à la VCL, est multi-plateforme. À terme la LCL sera 100 % compatible avec la VCL et sera interfaçable à travers une simple directive de compilation avec les bibliothèques, GTK 1 et 2, Win32 et Qt.
Depuis Delphi XE2 Embarcadero propose le framework multiplateforme FireMonkey. Celui-ci est disponible pour créer des applications Linux directement depuis Delphi lorsqu'on a une licence prenant en charge ce système d'exploitation. Le développement restant sous Windows puisque l'environnement de développement est lui-même une application VCL.