Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #69, СЕНТЯБРЬ 2004 г.

Маленький гигант большого интерфейса

Фленов Михаил

Xakep, номер #069, стр. 069-120-1


(www.vr-online.ru)

Как минимизировать размер exe и не потерять визуальность

В качестве способов минимизации я всегда предлагал использовать специальные проги для сжатия запускных файлов или отказываться от визуальности. Первый способ хорош, но файлы все же остаются достаточно большими. Во втором случае файлы становятся минимальных размеров, но теряют визуальность, а в заднице появляется большая заноза. Но есть способ создать действительно маленький код и практически не потерять в визуальности.

KOL+MSK

KOL (Key Objects Library, или библиотека ключевых объектов) содержит объекты, которые упрощают программирование на Windows API и при этом не увеличивают код. MСK (Mirror Classes Kit, или комплект зеркальных классов) – библиотека, позволяющая использовать KOL визуально. Это отличная надстройка, которая максимально эффективно использует возможности KOL и при этом минимально влияет на размер исполняемого файла.

Так как визуальная среда Delphi плохо подходит для создания компактного кода и больше ориентирована на использование родных библиотек VCL и CLX, то при создании визуальности с использованием KOL разработчикам пришлось неплохо попотеть. Конечно же, реализация получилась немного неуклюжей (чуть позже мы увидим все недостатки), но другого выхода я не вижу и даже за такое решение готов поставить ребятам памятник и выдать медаль из консервной банки :).

Install.me

Установка проста, как три копейки. Разархивируем содержимое архивов kol.zip и mck.zip в одну и ту же директорию. Теперь открываем файл MirrorKOLPackageDХ.dpk, где Х – это номер версии твоего дельфина. У меня 7-я версия, но даже при установке файла для 6-й версии библиотека ставится без проблем. Итак, после открытия файла перед нами откроется окно установки пакета (см. рис. 1). Нажимаем здесь ОК и ждем секунду до окончания установки пакета.

После установки пакета нам становится доступной новая закладка KOL. Здесь расположены зеркальные компоненты для основных компонентов Delphi. Чтобы код был компактным, нужно использовать именно их. Но перед этим нужно правильно создать проект.

Hello world

Чтобы создать проект KOL+MCK, нужно выполнить несколько нехитрых операций. На первый взгляд они глупы и непонятны, но потом привыкаешь. Для начала создаем стандартный проект Delphi простого приложения и сохраняем все файлы проекта в одной директории. Помни, что все файлы должны быть в одной и той же директории, и разбрасывать их по разным папкам нежелательно. При сохранении проекта его название не имеет значения, потому что запускающий файл будет иметь другое имя.

Теперь бросаем на форму компонент KOLProject и в свойстве projectDest пишем осмысленное название - имя запускающего файла и всего проекта в целом. Да-да, мы его еще только создаем. Давай укажем здесь название TestProject.

Теперь бросаем на форму компонент KOLForm. Это говорит о том, что у нас будет визуальная форма. Сохраняем все.

Загляни сейчас в директорию, где сохранялся проект. Обрати внимание, что здесь появилась куча файлов с расширением .inc и новый файл проекта с именем, которое мы указали в свойстве projectDest компонента KOLProject, и расширением .dpr. В данном случае это будет TestProject.dpr. Это и есть проект MCK, который нужно открывать и визуально работать, как с любым другим проектом.

Содержание  Вперед на стр. 069-120-2