Библиотека визуальных компонентов - Visual Component Library
Эта статья включает Список ссылок, связанное чтение или внешняя ссылка, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты.Январь 2013) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Оригинальный автор (ы) | Borland |
---|---|
Разработчики) | Embarcadero Technologies |
изначальный выпуск | 1995 |
Операционная система | Кроссплатформенность (Майкрософт Виндоус, macOS, iOS, Android ) |
Тип | GUI |
Лицензия | Коммерческий |
Интернет сайт | www docwiki |
В Библиотека визуальных компонентов (VCL) является визуальным компонент -основан объектно-ориентированный рамки для разработки пользовательского интерфейса Майкрософт Виндоус Приложения. Это написано в Object Pascal.
История
VCL был разработан Borland для использования и тесно интегрирован с Delphi и C ++ Builder РАД инструменты.
В 1995 году Borland выпустила Delphi, его первый выпуск Object Pascal IDE и язык. До этого момента Turbo Pascal от Borland для DOS и Windows был в основном процедурным языком с минимальными объектно-ориентированными функциями и построением фреймворков пользовательского интерфейса с языком, необходимым с использованием таких фреймворков, как Turbo Vision и Библиотека объектов Windows. OWL, похожая на MFC, требовалось написание кода для создания объектов пользовательского интерфейса.
Ключевой целью VCL в сочетании с языком Delphi было изменение требований к созданию пользовательского интерфейса. (Для контекста, вариант Pascal для Delphi имел ряд инновационных объектно-ориентированных функций, таких как свойства и информация о типах среды выполнения, вдохновленных Modula и Smalltalk.) В то время большая часть работы над кодом пользовательского интерфейса требовала создания классов, унаследованных от других классов, а настраиваемые объекты часто нельзя было повторно использовать (например, кнопку, выполняющую определенное действие, нельзя повторно использовать в другом приложении).[1] Код пользовательского интерфейса также был сложным, заставляя программиста понимать и использовать Windows API, управлять ресурсами GDI и т. Д.[2] Наконец, визуальный пользовательский интерфейс, возможно, должен быть разработан визуально, и все же большинство инструментов для этого - в то время, в основном Visual Basic - делали это с точки зрения вывода кода дизайнером, создавая хрупкую, нередактируемую вручную ситуацию - проблема, которая все еще сохраняется сегодня во многих фреймворках пользовательского интерфейса, особенно основанных на 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, Болтовня, C # и многие другие объектно-ориентированный языки программирования.
Компоненты VCL охватывают элементы управления Windows, такие как окна (TForm учебный класс ), элементы управления (например, классы TButton, TCheckBox, TLabel), а также база данных доступ (например, компоненты ADO или IBX) или Интернет-соединения (Инди составные части). Компонентный подход позволяет программистам расширять VCL множеством визуальных и невизуальных дополнительных компонентов. Существует большое количество бесплатных и коммерческих пакетов компонентов. Среди них есть Джедаи, ТМС, Разработчик Express, Mitov Software, Raize Software, TurboPower, IOComp, SDL, DA-SOFT Технологии и много других.
Хотя не все компоненты VCL потокобезопасный, VCL поддерживает многопоточность тоже. Одним из примеров является встроенная поддержка многопоточности в OpenWire Библиотека VCL.
VCL обеспечивает встроенную поддержку для PME (свойства, методы и события) модели на .СЕТЬ уровень.[нужна цитата ]
Большая часть .СЕТЬ Дизайн, особенно 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.
В Лазарь проект имеет переносимый (* nix, OS / X, Win32 / 64 + wince) эквивалент, называемый LCL, который уже работал, когда появились Kylix и CLX. Проект продолжал развиваться и игнорировал Kylix (а позже и FMX).
OpenOffice.org и поэтому LibreOffice содержит несвязанную графическую библиотеку под названием Библиотека визуальных классов (VCL).
Смотрите также
Рекомендации
- ^ Дизайн компонентов Delphi, Дэнни Торп, стр. 9
- ^ Дизайн компонентов Delphi, Дэнни Торп, стр. 11
- ^ http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html#compile-time-form-processing
- ^ http://docwiki.embarcadero.com/RADStudio/XE6/en/VCL_Overview#Using_Events
- ^ Дизайн компонентов Delphi, Дэнни Торп, стр.
- ^ http://docwiki.embarcadero.com/RADStudio/XE6/en/Understanding_the_Component_Library
- ^ http://delphi.about.com/od/delphifornet/a/conspiracydnet_2.htm
- ^ http://www.glennstephens.com.au/tech/CSharp4DelphiDevelopers.pdf
внешняя ссылка
- Страницы Delphi Торри Основной репозиторий для бесплатных и коммерческих компонентов VCL
- Библиотека визуальных компонентов JEDI (JVCL) и Библиотека кодов JEDI (JCL): огромная коллекция компонентов с открытым исходным кодом на основе VCL
- Программное обеспечение TMS Компания, предоставляющая широкий спектр профессиональных компонентов VCL.
- Mitov Software Компания, предоставляющая компоненты VCL для видео, аудио, DSP, компьютерного зрения и визуализации данных
- DA-SOFT Технологии Компания, предоставляющая библиотеки VCL для высокоскоростного доступа к данным
- Программное обеспечение Steema Компания, предоставляющая Teechart Библиотека компонентов диаграмм VCL
- Epina GmbH Компания, предоставляющая Комплект компонентов SDL (Коллекция VCL)