Читать «Виртуальная библиотека Delphi» онлайн - страница 74

Unknown

// Обработка сообщений по умолчанию

////////////////////////////////////////////////////////////////////////////////

procedure TLiteDialogBox.DefaultHandler(var Msg);

begin

  // Возвращаемые значения по умолчанию

  with TMessage(Msg) do

    if Msg = WM_INITDIALOG then Result := 1

                           else Result := 0;

end;

end.

5. Пример программы на основе библиотеки WinLite

В прилагаемом примере, построенном на основе разработанной автором библиотеки API-программирования WinLite, рассматриваются следующие проблемы:

• создание и показ окон;

• создание и показ диалогов;

• загрузка ресурсов;

• работа с трэем;

• активизация приложения по нажатию глобальной "горячей" клавиши;

• "прилипание" окна к границам рабочей области экрана;

• реализация графики OpenGL;

• субклассинг стандартных элементов управления;

• буферизация вывода в окно для устранения мерцания;

• создание дополнительного потока и передача сообщений между потоками;

• установка таймера.

KOL

KOL — Key Objects Library – это библиотека объектов для программирования в среде Delphi. Предоставляется бесплатно, с исходными текстами.

Поддерживаются версии Delph3, Delphi4, Delphi5. Библиотека KOL позволяет разрабатывать чрезвычайно компактные GUI-приложения (от 13,5К без сжатия — при условии использования предлагаемой замены системных модулей system, sysinit). Большая часть кода переведана на ассемблер.

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

До сих пор программирование для KOL было полностью невизуальным, но с открытием проекта MCK (Mirror Classes Kit — набор зеркальных классов) появилась надежда на то, что очень скоро все прелести визуального программирования будут в полной мере доступны и для разработчиков, использующих KOL.

Состояние проекта KOL

• Базовый объект TObj функционально заменяет собой класс TObject из VCL. Он имеет похожий метод Free, который позволяет уничтожать объекты безопасно (игнорируя вызов для указателя nil), а так же пару методов RefInc и RefDec, позволяющих предотвратить удаление объекта из памяти между двумя соответствующими вызовами RefInc и RefDec.

 ◦ Очень полезный объект TList ("конструктор": NewList:PList). Подобно TList в VCL, позволяет хранить указатели на любые данные (или числа).

 ◦ TStrList. Конструктор: NewStrList: pstrlist — очень быстрый список строк (позволяет обрабатывать миллионы строк в секунду).

 ◦ Невизуальный объектный тип TTree для организации дерево-подобных структур данных в памяти.

 ◦ Объектный тип TGraphicTool реализует в себе GDI иснструменты — кисточку (NewBrush), шрифт (NewFont) и карандаш (NewPen), без введения трех различных потомков. Бóльшая часть кода включается в конечную программу только в случае, если в проекте имеются обращения к свойствам Font, Brush объектов TControl, или объекты типа TGraphicTool создаются явным образом.