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

Ручное редактирование коллекций панелей и действий

Перетаскивание имеет много достоинств, однако оно не всегда удобно. Поэтому было бы странно, если бы не было предусмотрено другого способа. Хоть он напрямую и не рекомендован в документации, но в ряде случаев более эффективен.

Рассмотрим работу с дочерними объектами менеджера действий, которые упакованы один в другой, как матрешки.

Итак, щелкнем на свойстве ActionManager на форме и посмотрим на содержимое Инспектора объектов. Внутри него мы обнаружим сразу две "матрешки" – свойство ActionBars содержит коллекцию ссылок на дочерние панели, свойство LinkedActionList может содержать дополнительный список действий, отданных "в управление" данному менеджеру – например, для централизованной установки общих свойств.

Щелкнем на свойстве ActionBars. Появится редактор панелей (рис. 8.7), а в Инспекторе объектов обратим внимание на следующее свойство объекта ActionBars:

property Customizable: Boolean;

Это свойство указывает, может ли коллекция редактироваться во время выполнения.

В коллекции содержатся не сами панели, а их "заместители" – объекты типа TActionBaritem, которые на них указывают. Надпись на рисунке "1-ActionBar › ActionToolBar1" показывает, что первый элемент коллекции связан с панелью ActionTooiBar2. Вы можете добавлять и удалять элементы этой коллекции, по мере необходимости связывая их через свойство ActionBar с уже существующей панелью.

Иллюстрированный самоучитель по Delphi 7 для профессионалов › Действия (Actions) и связанные с ними компоненты › Ручное редактирование коллекций панелей и действий
Рис. 8.7. Редактор коллекции панелей компонента TActionManager

Через Инспектор объектов вы можете изменять внешний вид объектов типа TActionBaritem и соответствующих им панелей.

Свойство:

property Color: TColor;

Отвечает за фоновый цвет панели. Если вам изменения цвета недостаточно, в качестве фона выберите картинку:

property Background: TPicture;

Которая будет расположена на панели в соответствии со значением свойства:

property BackgroundLayout: TBackgroundLayout;
TBackgroundLayout = (blNormal, blStretch, blTile, blLeftBanner, blRightBanner);
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.