Jump to content

Библиотека визуальных компонентов

Библиотека визуальных компонентов (VCL)
Оригинальный автор(ы) Борланд
Разработчик(и) Эмбаркадеро Технологии
Первоначальный выпуск 1995 год ; 29 лет назад ( 1995 )
Операционная система Кроссплатформенность ( Microsoft Windows , macOS , iOS , Android )
Тип графический интерфейс
Лицензия Коммерческий
Веб-сайт www .embarcadero /кр /продукты /рад-студия
документация .embarcadero /RADStudio /XE6 /VCL _Обзор

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

VCL был разработан компанией Borland и тесно интегрирован с ними для использования в ее инструментах Delphi и C++Builder RAD .

В 1995 году компания Borland выпустила Delphi, свою первую версию Object Pascal IDE и языка . До этого момента Turbo Pascal от Borland для DOS и Windows был в основном процедурным языком с минимальными объектно-ориентированными функциями и созданием UI-фреймворков на необходимом языке с использованием таких фреймворков, как Turbo Vision и Object Windows Library . OWL, инфраструктура, аналогичная MFC , требовала написания кода для создания объектов пользовательского интерфейса.

Ключевой целью VCL в сочетании с языком Delphi было изменение требований к построению пользовательского интерфейса. (Для контекста: вариант Паскаля для Delphi имел ряд инновационных объектно-ориентированных функций, таких как свойства и информация о типах времени выполнения, вдохновленные Modula и Smalltalk.) В то время большая часть работы с кодом пользовательского интерфейса требовала создания классов, наследующих другие классы, а настраиваемые объекты часто не допускали повторного использования (например, кнопку, выполняющую определенное действие, нельзя повторно использовать в другом приложении). [ 1 ] Код пользовательского интерфейса также был сложным, заставляя программиста понимать и использовать Windows API, управлять ресурсами GDI и т. д. [ 2 ] Наконец, визуальный пользовательский интерфейс, возможно, должен проектироваться визуально, однако большинство инструментов для этого — в то время в основном Visual Basic — делали это с точки зрения кода, выводящего дизайнером, создавая хрупкую, не поддающуюся редактированию вручную ситуацию — проблема, которая до сих пор сохраняется во многих UI-фреймворках, особенно на основе C++, таких как Qt. [ 3 ]

Комбинация языка Delphi и среды VCL, написанной на этом языке, решает эти проблемы следующим образом:

  • Платформа потоковой передачи, позволяющая передавать объект и подобъекты в текстовый или двоичный формат — TComponent, корневой класс платформы VCL.
  • Конструктор форм, сохраняющий в поток описание объектов, а не код, необходимый для их создания, с объектами, способными создаваться самостоятельно при потоковой передаче описания обратно в поток.
  • Возможности языка, которые позволяли настраивать экземпляры класса без создания подклассов двумя способами: во-первых, посредством использования свойств, позволяющих экземплярам объекта иметь собственные поля (например, заголовок), которые можно легко изменять посредством потоковой передачи; во-вторых, позволяя событиям — указателям на методы, вызываемым в определенных местах кода — обрабатываться другим объектом; то есть указатели методов были прикреплены к экземпляру объекта. [ 4 ] Другими словами, это создает «индивидуальное поведение посредством делегирования вместо наследования». [ 5 ]
  • Элементы управления, обернутые собственными элементами управления Windows, в инфраструктуре, управляющей ресурсами. [ 6 ]

Сочетание этих возможностей привело к созданию визуального дизайнера, который транслировал описание; форма (окно), созданная на основе этого описания, включая создание всех остальных компонентов этой формы; и код, написанный в одном месте (методы в форме), который может вызываться элементами пользовательского интерфейса в ответ на определенные действия, например нажатие кнопки, вызывающее обработчик событий OnClick, реализованный в коде формы. В то время это было революционно, а сегодня этот подход используется в ряде других платформ, таких как WinForms и Cocoa.

Это также позволило легко писать новые компоненты — новые визуальные или невизуальные классы. VCL основан на Windows, а его реализации общих элементов управления являются оболочками Windows API, поэтому он близок к базовому и полностью нативный. Новые элементы управления можно реализовать с нуля или использовать существующие элементы управления Windows.

С выпуском C++ Builder компилятор Delphi мог создавать заголовочные файлы C++ для скомпилированных модулей языка Delphi, и поэтому для C++ стала доступна гибкость потоковой, визуально разработанной среды пользовательского интерфейса. Компоненты VCL на самом деле могут быть написаны на C++, но в конечном итоге наследуются от предков Delphi, поскольку компилятор и компоновщик C++Builder могут использовать объектные файлы и файлы заголовков, созданные Delphi. Это был один из первых примеров межъязыковой совместимости, невиданный до .Net.

Сегодня VCL включает в себя несколько сотен визуальных и невизуальных компонентов, которые можно использовать как на языках Delphi, так и на C++.

Технология

[ редактировать ]

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 миллиона долларов». [ 7 ] По данным delphi.about.com, в случае Андерса бонус составил три миллиона долларов. Многие разработчики Delphi находят C# довольно знакомым из-за сходства дизайна. [ 8 ]

[ редактировать ]

Кросс-платформенный эквивалент VCL, названный CLX (Библиотека компонентов для кросс-платформы), был позже разработан для использования в 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 содержат несвязанную графическую библиотеку, называемую библиотекой визуальных классов (VCL).

См. также

[ редактировать ]
  1. ^ Дизайн компонентов Delphi, Дэнни Торп, стр. 9
  2. ^ Дизайн компонентов Delphi, Дэнни Торп, стр. 11
  3. ^ «Использование файла пользовательского интерфейса Designer в вашем приложении | Qt 4.8» .
  4. ^ «Обзор VCL — RAD Studio» .
  5. ^ Дизайн компонентов Delphi, Дэнни Торп, стр. 12
  6. ^ «Понимание библиотеки компонентов — RAD Studio» .
  7. ^ «Уроки Дельфи» .
  8. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 26 января 2014 г. Проверено 28 мая 2014 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b8a4f75ca441072f2b8b96faba2ff59b__1695562200
URL1:https://arc.ask3.ru/arc/aa/b8/9b/b8a4f75ca441072f2b8b96faba2ff59b.html
Заголовок, (Title) документа по адресу, URL1:
Visual Component Library - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)