Поэтому наш пример лишь показывает, как загрузить динамическую библиотеку theme.dll и получить ссылку на тему визуального стиля для текущего окна и кнопочного элемента управления.

V Листинг è.4. ПримерI использования функций Theme API в Delphi j

var DC : HDC;
CurrentThemeData: HTHEME;

begin if UseThemes and InitThemeLibrary then try

DC := GetWindowDC(Handle);

try

CurrentThemeData := OpenThemeData(0, 'button');

CloseThemeData(CurrentThemeData); finally

ReleaseDC(Handle, DC);
end finally FreeThemeLibrary;

end else

ShowMessage('Приложение или операционная система не поддерживают использование Theme API');
end;

Функция

function UseThemes: Boolean;

проверяет способность операционной системы и приложения использовать Theme API.

Методы

fonction InitThemeLibrary : Boolean;
procedure FreeThemeLibrary;

соответственно инициализируют и выгружают библиотеку theme.dll.

Графический контекст ос наверняка понадобится при отрисовке элементов управления (см. гл. 10).

Функция

OpenThemeData: function(hwnd: HWND;
pszClassList: LPCWSTR): HTHEME;
stdcall;

возвращает дескриптор темы для текущего визуального стиля и класса, имя которого представлено параметром pszClassList.

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

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

CloseThemeData: function(hTheme: HTHEME): HRESULT;
stdcall;

Заинтересованный читатель найдет подробное описание нужных функций Theme API в Microsoft MSDN или же может полюбопытствовать содержимым модулей UxTh.eme.pas и Themes.pas.

Компоненты настройки цветовой палитры

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

□
TStandardColorMap - по умолчанию настроен на стандартную цветовую палитру Windows;
OTXPColorMap - по умолчанию настроен на стандартную цветовую палитру Windows ХР;

□ TTwilightColorMap - по умолчанию настроен на стандартную полутоновую (черно-белую) палитру Windows.

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

Все панели инструментов (класс TActionToolBar), созданные в этом компоненте (см. гл. 8), имеют свойство

property ColorMap: TCustomActionBarColorMap;

в котором и задается необходимый компонент цветовой палитры. Сразу после подключения все элементы управления на такой панели инструментов перерисовываются в соответствии с цветами новой палитры.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Июнь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс