Поэтому наш пример лишь показывает, как загрузить динамическую библиотеку 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



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

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31