Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Визуальные стили в Delphi

Поиск:
TActionManager является своего рода "командным пунктом", из которого должны управляться элементы управления приложения. Нас интересует только одно свойство этого компонента

Код

property Style: TActionBarStyle;


По умолчанию среда разработки Delphi предлагает к использованию два стиля:

standard — приложение использует системную библиотеку ComCtl32.dll версии 5;
windows XP — приложение использует системную библиотеку ComCtl32.dll
версии 6 и единственный стандартный визуальный стиль Windows XP.

Эти стили применимы только к элементам управления, размещенным на панелях инструментов (TActionToolBar), созданных в компоненте

TActionManager.

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

Для этого необходимо создать класс нового визуального стиля на основе класса TActionBarstyieEx. Затем новый стиль регистрируется при помощи процедуры

Код

procedure RegisterActnBarStyle(AStyle: TActionBarStyleEx);


После этого ваш стиль становится доступным для свойства style компонента TActionManager. Чтобы отменить стиль, используйте процедуру

Код

procedure UnRegisterActnBarStyle(AStyle: TActionBarStyleEx);


Например, обе эти операции удобно выполнить при инициализации и деинициализации модуля, описывающего класс стиля:

Вариант регистрации и отмены собственного визуального стиля

Код

var MyStyle: TMyStyleActionBars;  
...  
initialization  
 MyStyle := TMyStyleActionBars.Create;  
 RegisterActnBarStyle(MyStyle);  
finalization  
 UnregisterActnBarStyle(MyStyle);  
 MyStyle.Free;  
end.


Для смены стиля приложения можно использовать глобальную переменную нового стиля (см. листинг 6.3). Ее достаточно присвоить свойству style:

Код

ActionManagerl.Style := MyStyle;


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

Класс TActionBarstyieEx имеет всего несколько методов, которые необходимо перекрыть при создании собственного стиля. Все они возвращают классы объектов, используемых при создании пользовательского интерфейса. Рассмотрим их.

Функция

Код

function GetStyleName: string;


возвращает имя стиля.

Функция

Код

function GetColorMapClass(ActionBar: TCustomActionBar): TCustomColorMapClass;


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

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

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

Код

function GetControlClass(ActionBar: TCustomActionBar; AnItem:  
TActionClientltem): TCustomActionControlClass;


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

TActionManager.

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

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

Код

function GetPopupClass(ActionBar: TCustorrActionBar) : TGetPopupClass;


и для классов кнопок панели инструментов применяется функция

Код

function GetScrollBtnClass: TCustomToolScrollBtnClass;


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

Код

function GetAddRemoveltemClass(ActionBar: TCustomActionBar): TCustomAddRemoveltemClass;


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






Просмотров: 3022

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную