Введение

Visual Component Library (VCL) — это объектно-ориентированный каркас, основанный на визуальных компонентах, для разработки пользовательского интерфейса приложений Microsoft Windows. Он написан на Object Pascal.

Технология

VCL формирует иерархию классов с общим предком – классом TComponent (который наследуется от TObject, корневого класса в Delphi Object Pascal). Это распространенный подход, используемый языками программирования Java, Smalltalk, C# и многими другими объектно-ориентированными языками. Компоненты VCL охватывают элементы управления Windows, такие как окна (класс TForm), элементы управления (например, классы TButton, TCheckBox, TLabel), а также доступ к базам данных (например, компоненты ADO или IBX) или интернет-соединения (компоненты Indy). Компонентный подход позволяет программистам расширять VCL множеством визуальных и невизуальных дополнительных компонентов. Существует большое количество бесплатных и коммерческих пакетов компонентов, среди которых JEDI, TMS, Developer Express, Mitov Software, Raize Software, TurboPower, IOComp, SDL, DA SOFT Technologies и многие другие. Хотя не все компоненты VCL потокобезопасны, VCL также поддерживает многопоточность. Примером является встроенная поддержка многопоточности в библиотеке OpenWire VCL. VCL обеспечивает нативную поддержку модели PME (свойства, методы и события) на уровне .NET. Значительная часть архитектуры .NET, особенно WinForms, была смоделирована на основе VCL. Один из главных архитекторов первых версий Delphi, Андерс Хейлсберг, был нанят Microsoft и стал одним из главных архитекторов .NET. Это привело к судебному разбирательству: в то время (1996 год) «Borland утверждала, что Microsoft наняла 34 сотрудника Borland за последние 30 месяцев с целью похищения коммерческих секретов Borland. Borland также заявляла, что Microsoft предлагала и предоставляла дорогие стимулы работникам Borland. В двух случаях вознаграждения превышали 1 миллион долларов». По данным delphi.about.com, бонус в случае с Андерсом составил три миллиона долларов. Многие разработчики Delphi находят C# довольно знакомым благодаря сходству в дизайне.

Связанные рамки

Кроссплатформенный эквивалент VCL, называемый CLX (Component Library for Cross Platform), позже был разработан для использования в Delphi, C++Builder и Kylix в 2000–2001 годах. Однако, разработка была прекращена. Вторая кроссплатформенная среда разработки, FireMonkey, была интегрирована в Delphi и C++Builder XE2 в 2011 году. FireMonkey – это векторная среда разработки, подобная WPF, для создания пользовательских интерфейсов для Windows, OSX, iOS и Android. Проект Lazarus имеет переносимый (*nix, OS/X, Win32/64+wince) эквивалент под названием LCL, который уже функционировал, когда появились Kylix и CLX. Проект придерживался выбранного направления и не использовал Kylix (и позднее FMX). OpenOffice.org, а следовательно, и LibreOffice, содержат несвязанную графическую библиотеку под названием Visual Class Library (VCL).