DialogParams.Template := '';
end;
////////////////////////////////////////////////////////////////////////////////
// Активизация модального диалога
////////////////////////////////////////////////////////////////////////////////
function TLiteDialogBox.ShowModal: Integer;
begin
// Формируем параметры диалога
CreateDialogParams(FDlgParams);
// Показываем диалог
with FDlgParams do
Result := DialogBoxParam(hInstance, Template, WndParent,
WndCallback, 0);
end;
////////////////////////////////////////////////////////////////////////////////
// Обработка сообщений по умолчанию
////////////////////////////////////////////////////////////////////////////////
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. Он имеет похожий метод
◦ Очень полезный объект TList ("конструктор": NewList:PList). Подобно TList в VCL, позволяет хранить указатели на любые данные (или числа).
◦ TStrList. Конструктор: NewStrList: pstrlist — очень быстрый список строк (позволяет обрабатывать миллионы строк в секунду).
◦ Невизуальный объектный тип TTree для организации дерево-подобных структур данных в памяти.
◦ Объектный тип TGraphicTool реализует в себе GDI иснструменты — кисточку (NewBrush), шрифт (NewFont) и карандаш (NewPen), без введения трех различных потомков. Бóльшая часть кода включается в конечную программу только в случае, если в проекте имеются обращения к свойствам Font, Brush объектов TControl, или объекты типа TGraphicTool создаются явным образом.
◦ Объект TCanvas, очень похожий на TCanvas из VCL (но более компактный и эффективный). Для рисования на существующем DC, имеется конструктор: NewCanvas(DC): PCanvas
◦ TBitmap, также напоминает TBitmap из VCL. Конструкторы:
▪ NewBitmap(Width, Height): PBitmap.
▪ NewDIBBitmap(Width, Height, PixelFormat): PBitmap
◦ Объект TImageList (подобно аналогичному в VCL). Конструктор: NewImageList(AOwner: PControl): PImageList.