MetabaseTreeCombo

Иерархия наследования

          IComponent

          IControl

          ITreeControl

          ITreeCombo

          IMetabaseTreeCombo

          MetabaseTreeCombo

Описание

Компонент MetabaseTreeCombo предназначен для отображения дерева объектов репозитория в виде раскрывающегося списка.

Работа с компонентом

По умолчанию в компоненте ничего не отображается. Для установки каталога, содержимое которого будет отображено в компоненте, используется свойство Root. Список отображаемых объектов можно изменить, настроив фильтрацию в свойстве Filters. Каждый элемент дерева является ссылкой на соответствующий объект репозитория. Для получения информации о соответствующем объекте необходимо вершину дерева привести к интерфейсу IMetabaseTreeListNode (преобразование осуществляется с использованием ключевого слова As) и получить свойство ObjectDescriptor.

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

Кнопка используется для сброса установленной отметки элементов дерева.

Примечание. Размеры раскрывающегося списка элементов можно изменять, перетаскивая его правую, левую или нижнюю границу при помощи мыши. Минимальная ширина раскрывающегося списка равна ширине компонента.

Поиск элементов

При развернутом раскрывающемся списке компонента предусмотрены следующие виды поиска:

При удачном поиске курсор будет фокусироваться на найденном элементе. Состояние отметки зависит от значения свойства FindMode. В зависимости от выбранного режима множественной отметки добавление элемента в отметку осуществляется выделением с использованием клавиши «Пробел» либо выделением с помощью мыши при зажатой клавише CTRL.

Также существует возможность поиска при свернутом раскрывающемся списке компонента. Когда компонент находится в фокусе, при наборе сочетания символов будет формироваться список, отфильтрованный по элементам, содержащим в своем наименовании данное сочетание:

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

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

Сортировка данных

Необходимым условием для сортировки данных является установка свойствам ShowColumnHeaders, Sorted и ColumnClick значения True, а свойству SortType значения, отличного от None.

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

Также осуществить настройку сортировки можно в специализированном окне «Сортировка»:

Данное окно появляется при выборе соответствующего пункта контекстного меню, вызываемого в области заголовков колонок.

Примечание. Пункт контекстного меню будет доступен, если свойствам ShowColumnHeaders и Sorted установлено значения True, а свойству SortType значение, отличное от None.

Колонки, по которым будет осуществляться сортировка, необходимо переместить в список выбранных. Кнопки и используются для изменения направления сортировки по выбранному столбцу. Кнопки и используются для изменения порядка сортировки. Колонки, расположенные вверху списка, будут сортироваться в первую очередь.

В языке Fore для применения сортировки необходимо установить свойству Sorted значение True и свойству SortType значение, отличное от None. Колонка, по данным которой осуществляется сортировка, указывается в свойстве SortColumn. Направление сортировки определяется в свойстве SortAscending соответствующего столбца.

Также для управления сортировкой могут применяться методы Sort и SortDefault.

Фильтры компонента

Для настройки фильтрации объектов, отображаемых в дереве компонента, необходимо выполнить одно из следующих действий:

В данном окне содержится список фильтров, используемых в компоненте.

Весь список оформлен в виде таблицы, содержащей два столбца:

В окне можно создавать новые, а также редактировать или удалять существующие фильтры. В таблице доступна множественная отметка, при этом выделенные фильтры можно только удалить.

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

Создание фильтра объектов

Для создания нового фильтра объектов необходимо выполнить одно из следующих действий:

В открывшемся диалоге необходимо выбрать тип создаваемого фильтра. Доступны следующие типы:

В дереве классов необходимо отметить флажки у тех классов объектов, которые будут доступны при использовании данного фильтра. Флажок «Отображать подклассы» позволяет исключить из дерева отображение дополнительных классов объектов.

В области «Способ добавления фильтра» необходимо указать в каком виде будет сохранен фильтр:

После нажатия кнопки «ОК» будет создан новый фильтр (фильтры) для выбранных классов объектов.

Редактирование фильтра объектов

Для редактирования какого-либо фильтра необходимо выполнить одно из следующих действий:

В зависимости от типа созданного фильтра (отдельный для класса (подкласса) либо составной фильтр) будет выведен диалог редактирования фильтра:

Отдельный фильтр для класса (подкласса)

Составной фильтр

В диалоге можно изменить класс (подкласс, либо их комбинацию для составного фильтра) объекта(ов), для которого создан фильтр, а также описание фильтра. После нажатия кнопки «ОК» изменения будут сохранены.

Удаление фильтра

Для удаления фильтра (фильтров) необходимо выделить его в таблице и выполнить одно из следующих действий:

После этого фильтр будет удален.

Пример

Свойства компонента MetabaseTreeCombo

  Имя свойства Краткое описание
Свойство Align определяет, как поведет себя компонент при изменении размеров содержащего его родительского компонента.
Свойство AllowDrag определяет возможность взять у компонента перетаскиваемый объект.
Свойство AllowDrop определяет, будет ли возможность у компонента принять перетаскиваемый объект.
Устарело. Используйте SelectionMode.
Свойство Anchors возвращает настройки, определяющие в процентном соотношении изменение размеров текущего компонента при изменении размеров родительского компонента.
Свойство AnimationType определяет тип анимации, применяемый при разворачивании списка компонента.
Свойство AutoCheckParent определяет, будет ли у родительских вершин компонента автоматически устанавливаться неопределенное состояние, если отмечены не все дочерние элементы.
Свойство AutoUpdateInfo определяет признак автоматического обновления информации об отметке в редакторе компонента.
Свойство BorderStyle определяет стиль рамки, обрамляющей компонент.
Свойство Brush определяет кисть, используемую для заливки области компонента.
Свойство CancelOnEscape определяет, будет ли производиться отмена установленной отметки и закрытие списка при нажатии клавиши «Escape».
Свойство Checkboxes определяет наличие флажков у элементов.
Свойство CheckedObjects возвращает коллекцию описаний объектов, флажки которых отмечены в компоненте.
Свойство ClientHeight используется для получения или задания высоты клиентской области компонента.
Свойство ClientWidth используется для получения или задания ширины клиентской области компонента.
Свойство CloseOnClick определяет, будет ли производиться автоматическое закрытие списка при выборе щелчком кнопки мыши одного элемента из этого списка.
Свойство CloseOnEnter определяет, будет ли производиться закрытие списка и сохранение отметки при нажатии клавиши "Enter".
Свойство Color определяет цвет фона компонента.
Свойство ColumnClick определяет возможность отображения заголовков столбцов в виде кнопок.
Свойство Соlumns возвращает коллекцию столбцов компонента.
Свойство ComponentCount возвращает количество дочерних компонентов.
Свойство Components возвращает дочерний компонент.
Свойство Cursor определяет вид курсора над компонентом.
Свойство Data предназначено для хранения любых пользовательских данных.
Свойство DelayedFill определяет режим построения дерева объектов в компоненте.
Свойство DisplayMode определяет режим отображения объектов в дереве компонента.
Свойство Dropped возвращает видимость раскрывающегося списка.
Свойство DroppedListHeight определяет высоту раскрывающегося списка компонента.
Свойство DroppedListWidth определяет ширину раскрывающегося списка компонента.
Свойство DroppedPopupMenu определяет контекстное меню, вызываемое в области раскрывающегося списка компонента.
Свойство DropTargetNode определяет вершину компонента, над которой в данный момент пользователь перетаскивает другую вершину.
Свойство Enabled определяет доступность компонента для пользователя.
Свойство EnableFindDialog определяет, будет ли вызываться стандартный диалог поиска элементов при нажатии "горячих клавиш" CTRL+F или F3.
Свойство FindEditVisible определяет признак отображения строки поиска при развернутом раскрывающемся списке компонента.
Свойство FindMode определяет режим отметки найденных элементов.
Свойство Filters возвращает коллекцию фильтров, используемых для фильтрации объектов, отображаемых в компоненте.
Свойство FilterStyle определяет режим построения дерева отфильтрованных элементов.
Свойство Focused возвращает True, если фокус установлен на данном компоненте.
Свойство FocusedNode определяет вершину, имеющую фокус в данный момент.
Свойство Font определяет множество характеристик, описывающих шрифт, используемый при отображении текста.
Свойство GridLines определяет, будет ли отображаться сетка.
Свойство HeaderMenu определяет контекстное меню, вызываемое при щелчке дополнительной клавишей мыши на заголовке колонки компонента.
Свойство Height определяет высоту компонента.
Свойство HelpContext определяет уникальный индекс раздела контекстно-зависимой справки для данного компонента.
Свойство HideSelection определяет признак отображения отметки в компоненте при передаче фокуса другому компоненту.
Свойство HighlightTrack определяет, подсвечивать ли элемент при наведении указателя мыши.
Свойство Hint определяет текст подсказки для компонента.
Свойство HotTrack определяет признак выделения подчеркиванием элемента, над которым проходит указатель мыши.
Свойство HotTrackAutoExpand определяет признак изменения состояния дерева дочерних элементов при щелчке по выделенному элементу.
Свойство Images содержит список изображений, используемых для прорисовки узлов.
Свойство InnerRoot возвращает параметры внутренней корневой вершины дерева.
Свойство Left определяет координату левого края компонента.
Свойство Locked определяет возможность изменения отметки и редактирования элементов в компоненте.
Свойство Metabase определяет репозиторий, с которым связан компонент.
Устарело. Используйте SelectionMode.
Свойство Name определяет наименование компонента.
Свойство Nodes возвращает коллекцию элементов.
Свойство Parent определяет родительский компонент.
Свойство ParentColor определяет, будет ли для компонента заимствован цвет родительского компонента.
Свойство ParentFont определяет, будет ли для компонента использоваться шрифт родительского компонента.
Свойство ParentShowHint определяет условие отображения всплывающей подсказки.
Свойство PopupMenu определяет контекстное меню, которое будет появляться при щелчке дополнительной клавишей мыши на компоненте.
Свойство ReadOnly определяет признак возможности редактирования элементов.
Свойство Root определяет корневой каталог, содержимое которого будет отображаться в компоненте.
Свойство RowSelect определяет необходимость выделения выбранного элемента подсветкой всей строки.
Свойство Scrolls возвращает параметры полос прокрутки компонента.
Свойство Selected возвращает последний отмеченный элемент дерева.
Свойство SelectedObjects возвращает коллекцию описаний объектов, выделенных в компоненте.
Свойство Selection возвращает отметку дерева элементов.
Свойство SelectionMode определяет режим отметки элементов в компоненте.
Свойство ShowButtons определяет, будут ли отображаться кнопки разворачивания и сворачивания дерева потомков вершин.
Свойство ShowColumnHeaders определяет, будут ли отображаться заголовки столбцов.
Свойство ShowEditImage определяет признак отображения пиктограммы элемента в редакторе компонента.
Свойство ShowEmptyFolders определяет признак отображения пустых папок.
Свойство ShowHint включает и выключает показ всплывающего окна подсказки для компонента.
Свойство ShowHints определяет, будут ли отображаться всплывающие подсказки при задержке мыши над элементами.
Свойство ShowInternalObjects определяет признак отображения внутренних объектов в дереве объектов репозитория.
Свойство ShowLines определяет, будет ли отображаться линия, соединяющая вершину с ее потомками.
Свойство ShowShortCuts определяет признак отображения ярлыков в дереве элементов компонента.
Свойство SortColumn определяет индекс столбца, по которому будет осуществляться сортировка.
Свойство Sorted определяет возможность сортировки по столбцу, указанному в свойстве SortColumn.
Свойство SortType определяет тип сортировки для компонента.
Свойство StateImages определяет источник пиктограмм для выбранных элементов.
Свойство TabOrder определяет позицию компонента в последовательности табуляции.
Свойство TabStop определяет признак необходимости компоненту получать фокус при нажатии кнопки «TAB».
Свойство Tag не используется компилятором. Пользователь может изменить значение свойства Tag и использовать его по своему усмотрению.
Свойство Text определяет строку, идентифицирующую компонент для пользователя.
Свойство Top определяет координату верхнего края компонента.
Свойство Visible определяет видимость компонента во время выполнения.
Свойство Width определяет ширину компонента.

Методы компонента MetabaseTreeCombo

  Имя метода Краткое описание
Метод AdjustDroppedListWidth осуществляет подгонку ширины раскрывающегося списка компонента.
Метод AdjustWidth осуществляет автоматический подгон ширины колонки с учетом её содержимого.
Метод BringToFront располагает компонент на передний план.
Метод ClientToScreen преобразовывает координаты точки, указанные относительно системы координат компонента, в экранные координаты.
Метод DoDragDrop позволяет начать операцию перетаскивания.
Метод DropDown осуществляет разворачивание комбинированного списка.
Метод FindByDescriptor осуществляет поиск вершины в дереве компонента, соответствующей указанному объекту репозитория.
Метод FindItemByKey осуществляет поиск вершины в дереве компонента по ключу объекта репозитория.
Метод GetImage возвращает графическое изображение компонента со всеми дочерними компонентами.
Метод GetItemAt позволяет получить элемент компонента в заданной точке.
Метод GetItemObject возвращает описание объекта репозитория, которому соответствует указанная вершина дерева.
Метод HitTest является расширением метода GetItemAt .
Метод RollUp осуществляет свертывание комбинированного списка.
Метод ScreenToClient преобразовывает экранные координаты точки в координаты, указываемые относительно системы координат компонента.
Метод SelectElem осуществляет отметку вершины дерева, соответствующей указанному объекту репозитория.
Метод SelectElemKey осуществляет отметку вершины дерева, соответствующей объекту репозитория с указанным ключом.
Метод SendToBack располагает компонент на задний план.
Метод SetFocus устанавливает фокус на данный компонент.
Метод Sort выполняет сортировку по значениям указанного столбца.
Метод SortDefault выполняет сортировку по значениям столбца, индекс которого указан в свойстве SortColumn.
Метод UpdateInfo осуществляет обновление информации об отметке элементов, отображаемой в редакторе компонента.

События компонента MetabaseTreeCombo

  Имя события Краткое описание
Событие OnAdded наступает при добавлении нового элемента.
Событие OnBeginDrag для компонента наступает, когда пользователь начинает перетаскивать объект от компонента.
Событие OnBeginFilter наступает в момент начала фильтрации списка элементов компонента.
Событие OnBeginSearch наступает в момент начала поиска элементов в компоненте.
Событие OnCheckToAddElem наступает при добавлении элементов в дерево.
Событие OnChecked наступает после установки флажка у элемента.
Событие OnChecking наступает при установке флажка у элемента.
Событие OnClick наступает, если пользователь осуществил щелчок основной кнопкой мыши в области компонента.
Событие OnCollapsed наступает после свертывания иерархии потомков вершины дерева.
Событие OnCollapsing наступает перед свертыванием иерархии потомков вершины дерева.
Событие OnColumnClick наступает при щелчке кнопкой мыши по заголовку столбца компонента.
Событие OnCompareItems наступает при сравнении двух элементов во время пользовательской сортировки элементов.
Событие OnDblClick наступает, если пользователь осуществил двойной щелчок кнопкой мыши в области компонента.
Событие OnDeleting наступает при удалении элемента.
Событие OnDragDrop для компонента наступает, когда пользователь отпускает над ним перетаскиваемый объект.
Событие OnDragEnter наступает, когда перетаскиваемый объект входит в область данного компонента.
Событие OnDragLeave наступает, когда перетаскиваемый объект выходит за границы данного компонента.
Событие OnDragOver для компонента наступает, когда пользователь протаскивает над ним перетаскиваемый объект.
Событие OnDropDown наступает при разворачивании списка компонента.
Событие OnEdited наступает при выходе из режима редактирования содержимого поля текущей записи компонента.
Событие OnEditing наступает при переходе в режим редактирования содержимого поля текущей записи компонента.
Событие OnEnter наступает в момент получения фокуса компонентом.
Событие OnExit наступает в момент потери фокуса компонентом.
Событие OnExpanded наступает после развертывания иерархии потомков вершины дерева.
Событие OnExpanding наступает непосредственно перед развертыванием иерархии потомков вершины дерева.
Событие OnFilter наступает после окончания фильтрации списка элементов.
Событие OnFocusedChanged наступает при передаче фокуса другому элементу компонента.
Событие OnFocusedChanging наступает перед передачей фокуса другой вершине компонента.
Событие OnGetElementPopup наступает при вызове контекстного меню для какого-либо элемента дерева.
Событие OnGetHint наступает при появлении всплывающей подсказки над элементом, над которым остановился курсор мыши.
Событие OnGetNodeImage используется при определении изображения возле элемента дерева.
Событие OnGetNodeStateImage используется при определении изображения состояния возле элемента дерева.
Событие OnHover наступает в момент прохождения курсора мыши над элементом и отметки подчеркиванием этого элемента компонента.
Событие OnHScroll наступает при изменении положения ползунка горизонтальной полосы прокрутки.
Событие OnIsBrowseableElem предназначено для установки признака отображения элемента в дереве.
Событие OnIsDynamicElem предназначено для установки признака динамического построения дерева дочерних элементов папок.
Событие OnIsEmptyFolder предназначено для установки признака пустой папки.
Событие OnIsFolderElem предназначено для установки признака папки у элементов, отображаемых в дереве компонента.
Событие OnKeyDown наступает, если компонент находится в фокусе и производится нажатие клавиши на клавиатуре.
Событие OnKeyPress наступает, если компонент находится в фокусе, при нажатии пользователем символьной клавиши.
Событие OnKeyPreview наступает перед каждым событием, связанным с нажатием клавиш.
Событие OnKeyUp наступает, если компонент находится в фокусе, при отпускании пользователем любой, ранее нажатой клавиши.
Событие OnMouseDown наступает, если указатель находится в области компонента и была нажата любая кнопка мыши.
Событие OnMouseEnter наступает в момент входа курсора мыши в область компонента.
Событие OnMouseHover наступает при задержке курсора мыши в области компонента.
Событие OnMouseLeave наступает в момент выхода курсора мыши за пределы области компонента.
Событие OnMouseMove наступает при перемещении курсора мыши над компонентом.
Событие OnMouseUp наступает при отпускании кнопки мыши, когда указатель находится в области компонента.
Событие OnMouseWheel наступает, если компонент находится в фокусе при вращении колеса мыши.
Событие OnRollUp наступает при сворачивании списка компонента.
Событие OnSearch наступает после окончания поиска элементов в компоненте.
Событие OnSelected наступает после установки отметки у вершины.
Событие OnSelecting наступает перед попыткой установить отметку у вершины.
Событие OnSelectionChanged наступает при изменении отметки элементов компонента.
Событие OnUnselected наступает после снятия отметки у вершины.
Событие OnUnselecting наступает перед попыткой снять отметку у элемента.
Событие OnVScroll наступает при изменении положения ползунка вертикальной полосы прокрутки.

См. также:

Дополнительные компоненты