Лучшие вопросы
Таймлайн
Чат
Перспективы

KOL

Из Википедии, свободной энциклопедии

Remove ads

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 содержат в себе сотни компонентов.

Remove ads

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

Суммиров вкратце
Перспектива

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

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

Remove ads

XHelpGen

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

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

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

Remove ads

Литература

  • Фленов Михаил Евгеньевич. 1.7. Использование библиотек KOL и MCK // Программирование в Delphi глазами хакера.. — 2 изд.. — БХВ-Петербург, 2012. — С. 37-40. — 480 с. ISBN 9785977500814.
  • Вадим Станкевич. «Платформа Win32 так просто не уйдёт» Интервью с Владимиром Кладовым, автором библиотеки KOL // Компьютерные вести. — 2007. № 46.
  • English KOL/MCK manual: https://www.artwerp.be/kol

См. также

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads