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


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



В гл. 8 мы детально поговорим о роли действий при разработке пользовательского интерфейса приложения и специальном компоненте для управления действиями — 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);

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

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

var MyStyle: TMyStyleActionBars;

...

initialization

MyStyle := TMyStyleActionBars.Create;

 RegisterActnBarStyle(MyStyle);

finalization

UnregisterActnBarStyle(MyStyle);

MyStyle.Free;

 end.


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