На главную страницу
Форум txt.version   




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

 

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

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

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

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

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

property Customizable: Boolean;

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

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

Рис. 8.7. Редактор коллекции панелей компонента TActionManager

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

Свойство

property Color: TColor;

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

property Background: TPicture;

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

property BackgroundLayout: TBackgroundLayout;

TBackgroundLayout = (blNormal, blStretch, blTile, blLeftBanner, blRightBanner);

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

property ChangesAllowed: TChangesAllowedSet; 

TChangesAllowed = (caModify, caMove, caDelete);

 TChangesAllowedSet = set of TChangesAllowed;

Множество из трех возможных значений позволяет запретить те или иные нежелательные изменения для дочерних элементов панели. Если в него не включен режим caDelete, то элемент нельзя убирать (перетаскивать) с панели. Если нет режима caMove — нельзя передвигать внутри панели. Наконец, отсутствие режима caModify означает запрет на изменение визуальных свойств (заголовка и т. п.).

Внутри коллекции TActionBaritem спрятаны еще две "матрешки" — свойства items и Contextitems. Оба свойства представляют из себя коллекции объектов, указывающих на действия (класс коллекции TActionCiients, класс элемента коллекции TActiondientitem). Первое свойство указывает непосредственно на дочерние действия, второе — на действия, которые будут показаны в качестве всплывающего меню при нажатии правой кнопки мыши.

У коллекции TActionClients есть заслуживающие особого упоминания свойства.

Свойство

property CaptionOptions: TCaptionOptions;

 TCaptionOptions = (coNone, coSelective, coAll);

задает показ/отсутствие заголовков дочерних действий. В случае установки в coNone они не показываются, COAII — показываются все, coSelective — показываются в соответствии со значением showCaption дочернего объекта TActiondientitem. Это свойство можно также установить на первой странице редактора менеджера действий в одноименном выпадающем списке.

Свойство

property Smalllcons: Boolean;

указывает размер значков, соответствующих действиям. По умолчанию установлено в значение True (маленькие значки). Визуально оно доступно через тот же редактор — третья страница, флажок Large Icons.

Свойство

property HideUnused: Boolean;

разрешает скрытие редко используемых действий, описанное в предыдущем разделе. Если вы не хотите пользоваться механизмом скрытия, на третьей странице редактора менеджера действий и диалога TCustomizeDig есть флажок Menu show recent items first. Сбросьте его, и свойства HideUnused у клиентов действий установятся в значение False.

И, наконец, коллекцию можно сделать нередактируемой. Для этого у нее есть свойство Customizable.

Ну вот, мы уже добрались до самой маленькой матрешки — TActiondientitem. Этот объект связывается напрямую с одним действием через свойство Action. Правда в него можно спрятать еще меньшую матрешку — у него также есть свойства items и contextitems. Эти свойства используются при организации многоуровневых меню и меню, выпадающих из кнопок (точнее, псевдокнопок — напомним, объекты TActiondientitem на панелях не являются ни кнопками, ни компонентами вообще).

 

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

страницы в данном разделе 
 ГЛАВА 8   ГЛАВА 8 Действия (Actions) и связанные с ними компоненты
 Действия. Компонент TActionList  События, связанные с действиями
 Свойства, распространяемые на клиентов действия  Прочие свойства
 Стандартные действия  Категория Edit
 Категория Search  Категория Help
 Категория File  Категория Dialog
 Категория Window  Категория Tab
 Категория List  Категория Internet
 Категория Format  Категория Dataset
 Категория Tools  Компонент TActionManager
 Изменение и настройка внешнего вида панелей  Ручное редактирование коллекций панелей и действий
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum