TreeCombo

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

          IComponent

          IControl

          ITreeControl

          ITreeCombo

          TreeCombo

Описание

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

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

Отметка элементов компонента осуществляется при щелчке как по пиктограмме элемента, так и по самому элементу либо нажатием клавиши «Пробел».

При двойном щелчке по разделительной линии колонок будет осуществляться автоматический подгон по ширине колонки, расположенной слева. Ширина подгоняется с учетом всех элементов, которые могут содержаться у вершины (наличие экспандера, флажка, пиктограммы и пиктограммы состояния, текста вершины).

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

В редакторе компонента по умолчанию отображается информация об отметке элементов. За автоматическое обновление этой  информации отвечает свойство AutoUpdateInfo. Для отображения пользовательских данных в редакторе компонента необходимо изменить базовое свойство Text.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

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

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

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

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

См. также:

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