WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
KOL
Тип Библиотека
Разработчик Владимир Кладов
Написана на Pascal
Операционная система Windows, Windows Mobile, Linux
Последняя версия 3.23.5 (27.02.2015)
Лицензия Freeware
Сайт kolmck.ru/rindex.htm

KOL (Key Objects Library) — библиотека объектных типов для программирования в среде Delphi и Lazarus. Основная цель KOL — уменьшение размера конечной программы (Win32, GUI) в 5—10 раз по сравнению с тем, что даёт библиотека VCL. Поддерживаются все 32-разрядные версии Delphi, начиная с Delphi 2 и заканчивая BDS 2010.

MCK (Mirror Classes Kit) — это набор зеркальных классов, позволяющих разрабатывать проект на основе библиотеки KOL визуально. Компоненты MCK устанавливаются на палитру компонентов, работа с ними происходит так же, как это обычно делается в Delphi при визуальной разработке. В откомпилированном проекте визуальные компоненты замещаются своими невизуальными двойниками из KOL. Использование MCK сокращает размер исполнимой программы так же, как и при использовании KOL невизуально. Преимуществом является визуальная разработка, недостатоком же — зависимость от версии Delphi (поддерживаются Delphi2, Delph3, Delphi4, Delphi5, Delphi6, Delphi7, BDS 2005—2012, Kylix а также Free Pascal Compiler 1.0.5 и выше).

Проект KOL ведётся программистом Владимиром Кладовым уже около десяти лет. Проекты KOL и MCK содержат в себе сотни компонентов.

Причина создания

Одна из проблем систем типа RAD — размеры исполняемого модуля приложения. Основной виновник этого — реализация технологий ООП библиотеками визуального проектирования (VCL, MFC, Qt). Одна из причин — система наследования с высоким уровнем абстракции, значительно увеличивающая код базовых классов. Учитывая довольно внушительную иерархию графических компонентов VCL, их большой размер вполне объясним. Вторая причина — реализация виртуальных методов компилятором Delphi. Обычные, невиртуальные методы Delphi может исключить при компоновке, если они нигде не вызываются в коде. Виртуальные же методы жестко прописаны в VMT, размер которой компилятор пересчитывать не умеет, поэтому виртуальные методы включаются в компонуемый код всегда, даже если нигде реально не вызываются.

Разработчики KOL/MCK сумели предложить компромиссное решение, дающее аналог VCL с возможностью визуального проектирования, но с выходным размером исполняемого модуля в 5—10 раз меньше, чем с VCL. Здесь сыграли свою роль и оптимизация многих участков на ассемблере, и интересное решение с фактическим отказом от наследования в традиционном смысле: все визуальные компоненты KOL являются экземплярами единого огромного TControl, реализующего функциональность сразу всех интерфейсных элементов ОС. Можно говорить, что решение KOL — это ОО-надстройка над описателем окна (handle) «в лоб», не делающая различий между разными классами элементов интерфейса, как не делает их сама ОС. Вероятно, KOL — единственная объектно-ориентированная библиотека с такой архитектурой.

XHelpGen

Для библиотеки KOL (точнее, первоначально, для её предшественника, библиотеки XCL) Владимир Кладов разработал генератор документации XHelpGen, принцип работы которого схож с Doxygen.

Справочные файлы генерируются автоматически на основе комментариев вида {* }, помещаемых в исходных текстах в интерфейсной части модулей. (символ * опциональный и может комплекте быть замещён любым другим; более того, возможно использовать несколько различных символов, например — для локализации справочных файлов).

Генерация выполняется автоматически на основе комментариев к исходному коду (на языке Delphi Pascal), и происходит в случае, когда xHelpGen при запуске обнаруживает, что какие-либо исходные файлы в сканируемом каталоге изменены. Справка формируется в формате HTML и доступна для просмотра из любого браузера.

Литература

См. также

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии