Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга о KOL.doc
Скачиваний:
29
Добавлен:
30.04.2019
Размер:
1.77 Mб
Скачать

6.15.7. Свойство FormCompact

Описанная в предыдущей главе технология весьма сложна для использования, требует множества дополнительных манипуляций, тонких настроек. Короче говоря, с ней лучше не связываться. Начиная с версии 3.00, для MCK был предложен альтернативный механизм сжатия кода, предназначенного для первоначального конструирования формы.

Все, что нужно сделать – это включить свойство FormCompact для компонента TKOLForm, и перекомпилировать проект. Код, выполняющий создание формы, сокращается так же примерно вдвое, но примерно 1Кбайт дополнительного кода добавляется для обеспечения настройки свойств и разбора байт-кода, генерируемого в этом режиме. Фактически, это тоже интерпретатор, как и в случае collapse, но обеспечиваемый несколько большим числом мелких функций.

В результате, если на конструирование формы уходило меньше 2 Кбайт, никакого уменьшения кода заметно не будет (но может наблюдаться его увеличение). Экономия же будет иметь место в случае очень большого числа компонентов (особенно визуальных) на форме, или (и) большого числа форм. В общем-то, на этот случай FormCompact и разрабатывался.

6.16. Дополнительные визуальные объекты

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

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

Что касается частоты использования приведенных ниже компонентов, то лично я использую далеко не все из них. Иногда возникает настоятельная потребность в компоненте, а свой делать просто некогда, и тогда я что-нибудь использую, например список для выбора шрифта (несмотря на использование устаревшей техники, он вполне функционален). Написание этой главы, в том числе – это еще и попытка выполнить ревизию накопленного добра, и пополнить список ссылок на своем Web-сайте.

6.16.1 Линейка прогресса

На основном сайте представлены следующие две альтернативы стандартному прогрессу:

KOLProgressBar (автор А. Шахайло) - цветной контрол прогресса с заголовком (с MCK-зеркалом);

KOLRARProgress (автор Dimaxx) - прогресс-линейка, очень похожая на ту, что используется в архиваторе RAR.

6.16.2 Трак-бар (маркированная линейка-указатель)

В основном наборе KOL такого визуального элемента нет. Но имеется две альтернативные реализации такого контрола:

MHTrackBar (автор Д. Жаров a.k.a. Gandalf) и

KOLTrackBar (мой собственный). Именно этот вариант я предложил в качестве демонстрации того, как надо делать расширения объекта TControl в стиле псевдо-наследования. В реализации данного компонента используется ряд трюков, существенно уменьшающих размер добавляемого к приложению кода. Вполне может использоваться в качестве наглядного пособия по построению дополнительных визуальных объектов, реализующих новые виды оконных элементов.