Самоучитель по Delphi 7 для профессионалов


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


Для смены стиля приложения можно использовать глобальную переменную нового стиля (см. листинг 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. Именно эта функция вызывается при создании элементов управления в панелях инструментов компонента 

TAct ionManager.

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

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

function GetPopupClass(ActionBar: TCustorrActionBar) : TGetPopupClass;

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

function GetScrollBtnClass: TCustomToolScrollBtnClass;

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

function GetAddRemoveltemClass(ActionBar: TCustomActionBar): TCustomAddRemoveltemClass;

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

 




Начало  Назад  Вперед



Книжный магазин