KOL

Поделись знанием:
(перенаправлено с «XHelpGen»)
Перейти к: навигация, поиск
KOL
Тип

Библиотека

Разработчик

Владимир Кладов

Написана на

Pascal

Операционная система

Windows, Windows Mobile, Linux

Последняя версия

3.23.5 (27.02.2015)

Лицензия

Freeware

Сайт

[kolmck.net/rindex.htm net/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 и доступна для просмотра из любого браузера.

Напишите отзыв о статье "KOL"

Литература

  • Фленов Михаил Евгеньевич. 1.7. Использование библиотек KOL и MCK // [books.google.ru/books?id=X8AUQU9ovJwC&pg=PA37 Программирование в Delphi глазами хакера.]. — 2 изд.. — БХВ-Петербург, 2012. — С. 37-40. — 480 с. — ISBN 9785977500814.
  • Вадим Станкевич [www.kv.by/archive/index2007464301.htm?page=11 «Платформа Win32 так просто не уйдёт» Интервью с Владимиром Кладовым, автором библиотеки KOL] // Компьютерные вести. — 2007. — № 46.

Ссылки

  • [kolmck.net/rindex.htm Библиотека KOL]
  • [kolmck.net/docs/KOLbook_RU.htm KOL Book] (рус.)
  • [www.freepascal.ru/article/raznoe/20070525002100/%20Использование%20библиотеки%20KOL%20на%20компиляторе%20Free%20Pascal Использование библиотеки KOL на компиляторе Free Pascal], freepascal.ru

Отрывок, характеризующий KOL

– Душой рада, что приехали и что у меня остановились, – говорила она. – Давно пора, – сказала она, значительно взглянув на Наташу… – старик здесь и сына ждут со дня на день. Надо, надо с ним познакомиться. Ну да об этом после поговорим, – прибавила она, оглянув Соню взглядом, показывавшим, что она при ней не желает говорить об этом. – Теперь слушай, – обратилась она к графу, – завтра что же тебе надо? За кем пошлешь? Шиншина? – она загнула один палец; – плаксу Анну Михайловну? – два. Она здесь с сыном. Женится сын то! Потом Безухова чтоль? И он здесь с женой. Он от нее убежал, а она за ним прискакала. Он обедал у меня в середу. Ну, а их – она указала на барышень – завтра свожу к Иверской, а потом и к Обер Шельме заедем. Ведь, небось, всё новое делать будете? С меня не берите, нынче рукава, вот что! Намедни княжна Ирина Васильевна молодая ко мне приехала: страх глядеть, точно два боченка на руки надела. Ведь нынче, что день – новая мода. Да у тебя то у самого какие дела? – обратилась она строго к графу.
– Всё вдруг подошло, – отвечал граф. – Тряпки покупать, а тут еще покупатель на подмосковную и на дом. Уж ежели милость ваша будет, я времечко выберу, съезжу в Маринское на денек, вам девчат моих прикину.
– Хорошо, хорошо, у меня целы будут. У меня как в Опекунском совете. Я их и вывезу куда надо, и побраню, и поласкаю, – сказала Марья Дмитриевна, дотрогиваясь большой рукой до щеки любимицы и крестницы своей Наташи.
На другой день утром Марья Дмитриевна свозила барышень к Иверской и к m me Обер Шальме, которая так боялась Марьи Дмитриевны, что всегда в убыток уступала ей наряды, только бы поскорее выжить ее от себя. Марья Дмитриевна заказала почти всё приданое. Вернувшись она выгнала всех кроме Наташи из комнаты и подозвала свою любимицу к своему креслу.
– Ну теперь поговорим. Поздравляю тебя с женишком. Подцепила молодца! Я рада за тебя; и его с таких лет знаю (она указала на аршин от земли). – Наташа радостно краснела. – Я его люблю и всю семью его. Теперь слушай. Ты ведь знаешь, старик князь Николай очень не желал, чтоб сын женился. Нравный старик! Оно, разумеется, князь Андрей не дитя, и без него обойдется, да против воли в семью входить нехорошо. Надо мирно, любовно. Ты умница, сумеешь обойтись как надо. Ты добренько и умненько обойдись. Вот всё и хорошо будет.
Наташа молчала, как думала Марья Дмитриевна от застенчивости, но в сущности Наташе было неприятно, что вмешивались в ее дело любви князя Андрея, которое представлялось ей таким особенным от всех людских дел, что никто, по ее понятиям, не мог понимать его. Она любила и знала одного князя Андрея, он любил ее и должен был приехать на днях и взять ее. Больше ей ничего не нужно было.
– Ты видишь ли, я его давно знаю, и Машеньку, твою золовку, люблю. Золовки – колотовки, ну а уж эта мухи не обидит. Она меня просила ее с тобой свести. Ты завтра с отцом к ней поедешь, да приласкайся хорошенько: ты моложе ее. Как твой то приедет, а уж ты и с сестрой и с отцом знакома, и тебя полюбили. Так или нет? Ведь лучше будет?
– Лучше, – неохотно отвечала Наташа.


На другой день, по совету Марьи Дмитриевны, граф Илья Андреич поехал с Наташей к князю Николаю Андреичу. Граф с невеселым духом собирался на этот визит: в душе ему было страшно. Последнее свидание во время ополчения, когда граф в ответ на свое приглашение к обеду выслушал горячий выговор за недоставление людей, было памятно графу Илье Андреичу. Наташа, одевшись в свое лучшее платье, была напротив в самом веселом расположении духа. «Не может быть, чтобы они не полюбили меня, думала она: меня все всегда любили. И я так готова сделать для них всё, что они пожелают, так готова полюбить его – за то, что он отец, а ее за то, что она сестра, что не за что им не полюбить меня!»
Они подъехали к старому, мрачному дому на Вздвиженке и вошли в сени.
– Ну, Господи благослови, – проговорил граф, полу шутя, полу серьезно; но Наташа заметила, что отец ее заторопился, входя в переднюю, и робко, тихо спросил, дома ли князь и княжна. После доклада о их приезде между прислугой князя произошло смятение. Лакей, побежавший докладывать о них, был остановлен другим лакеем в зале и они шептали о чем то. В залу выбежала горничная девушка, и торопливо тоже говорила что то, упоминая о княжне. Наконец один старый, с сердитым видом лакей вышел и доложил Ростовым, что князь принять не может, а княжна просит к себе. Первая навстречу гостям вышла m lle Bourienne. Она особенно учтиво встретила отца с дочерью и проводила их к княжне. Княжна с взволнованным, испуганным и покрытым красными пятнами лицом выбежала, тяжело ступая, навстречу к гостям, и тщетно пытаясь казаться свободной и радушной. Наташа с первого взгляда не понравилась княжне Марье. Она ей показалась слишком нарядной, легкомысленно веселой и тщеславной. Княжна Марья не знала, что прежде, чем она увидала свою будущую невестку, она уже была дурно расположена к ней по невольной зависти к ее красоте, молодости и счастию и по ревности к любви своего брата. Кроме этого непреодолимого чувства антипатии к ней, княжна Марья в эту минуту была взволнована еще тем, что при докладе о приезде Ростовых, князь закричал, что ему их не нужно, что пусть княжна Марья принимает, если хочет, а чтоб к нему их не пускали. Княжна Марья решилась принять Ростовых, но всякую минуту боялась, как бы князь не сделал какую нибудь выходку, так как он казался очень взволнованным приездом Ростовых.