Функция

function GetStyleName: string; возвращает имя стиля. Функция

function GetColorMapClass (ActionBar: TCustomActionBar) : TCustomColorMapClass;

позволяет получить ссылку на класс компонента настройки цветовой палитры (см. разд. "Компоненты настройки цветовой палитры "далее в этой главе), используемый панелью инструментов.

Следующие три метода дают информацию о классах различных типов элементов управления, используемых при проектировании пользовательского интерфейса С 17JVDJJJ30 КомпонентаTActionManager.

Для того чтобы получить доступ к элементам управления, связанным со стилем, предназначен метод

function GetControlClass (ActionBar: TQistcrnActionBar;
Anltem: TActionClientltem) : TCustcrrActionControlClass;

Он возвращает класс элемента управления из панели ActionBar, связанного с элементом управления Anltem. Именно эта функция вызывается при создании элементов управления в панелях инструментов компонента

TActionManager.

Как уже говорилось выше, при присвоении свойству style компонента TActionManager нового значения (экземпляра класса разработанного вами визуального стиля) уничтожаются все существующие элементы управления и затем создаются новые. И в процессе создания каждого визуального компонента вызывается функция Getcontroiciass нового стиля, а возвращенное ею значение используется для вызова конструктора соответствующего класса.

Аналогично, для получения класса, используемого в панели меню, применяется метод

uniction GetPopupClass(ActionBar: TCustomActionBar): TGetPcpuptlass; и для классов кнопок панели инструментов применяется функция

furiction GetScrollBtnClass : TCustomToolScrollBtnClass ; А класс самой панели инструментов возвращает функция

function GetAddRemoveltemClass (ActionBar : TGistcniActionBar) : TCustomAddRemoveltemClass;

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

Thème API

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

Для того чтобы использовать Thème API, можно стандартным способом подключить к проекту динамическую библиотеку Theme.dll:

varThemeDLL: HINST;

Ьэдтп

ТпегпэПЬЬ := LoadLibrary ( ' thème. dll ' ) ;
if ThemePLL 0 0 then begin
end;
end;

Затем можно использовать возможности этого программного интерфейса напрямую. С деталями его реализации вы можете ознакомиться в документации Microsoft MSDN.

Однако можно поступить проще. В составе Delphi 7 имеется модуль Ux-Theme.pas, в котором как раз и реализованы возможности Theme API. Кроме этого, модуль Themes.pas содержит классы для основных элементов управления, которые могут использоваться при создании визуальных стилей, а также класс менеджера тем TThemeServices.

Так как детальное обсуждение возможностей Theme API выходит за рамки этой книги, в листинге 6.4 представлен схематичный пример использования функций этого программного интерфейса. Кроме того, как и все остальные API, работающие с GUI (Graphic User Interface) операционной системы, реальный код с использованием Theme API всегда перегружен многочисленными и ужасными на вид (а на самом деле вполне безобидными) функциями, рассчитывающими области вывода, неклиентские зоны оконных элементов и т. д.


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

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



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

  • Октябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс