Difference between revisions of "Дерево"
m (1 revision imported) |
|
(No difference)
|
Revision as of 07:55, 7 February 2021
![]() | |||||||
---|---|---|---|---|---|---|---|
|
Объект дерево является удобным способом хранения структурированной информации и может быть представлен визуально деревом значений, которое, кроме произвольной информации, может содержать структуру папок справочника. Дерево состоит из веток, каждая ветка может содержать произвольное значение, с каждой веткой может быть ассоциировано также строковое значение (наименование), каждая ветка может иметь произвольное количество дочерних веток. Другие свойства, присущие веткам: индекс галочки (см. Checked), индекс иконки (см. Icon), цвет фона может быть задан для каждой ветки в отдельности (к примеру, для выделения веток), цвет текста может быть задан для каждой ветки в отдельности, стиль шрифта (полужирный, наклонный и пр.) может быть задан для каждой ветки в отдельности, ветку можно сделать визуально недоступной, также можно программно раскрыть или закрыть ветку (в раскрытой ветке видны ее дочерние элементы, в закрытой они спрятаны).
При программной работе с объектом нужно различать два типа объектов, ассоциирующихся с деревом: само дерево, и объект ветки. При обходе дерева с помощью функций типа Next, ByIndex и пр. получаемые объекты являются объектами веток, каждый такой объект можно изменять и большинство функций объекта дерева работают с объектами ветки и наоборот. Однако, есть и отличия. К примеру, все визуальные свойства (типа цвета текста) можно устанавливать только для объекта ветки. Для объекта дерева также существует внутренний указатель на выбранную визуально пользователем ветку, которую можно получить или изменить с помощью атрибута Selected.
Для объекта ветки существует особое состояние -- ветка-сирота. Такие ветки не привязаны ни к какому дереву и являются самостоятельными объектами, при этом часть функций обычной ветки для них недоступна. Такие ветки получаются в случае, если объект дерева удаляется из системы, однако, объект ветки хранится в каких-либо внешних переменных или объектах и не может быть удален в данное время.
Атрибуты и функции
Идентификатор | Статус | Тип | Визуальная | Параметры | Описание |
---|---|---|---|---|---|
[<Индекс значения (INT,STRING)>] | Реализована | Атрибут | Tree[<Индекс или наименование значения подчиненной ветки (INT,STRING)>]:<Значение> | Применимо к объектам ветки и дерева. Использование синтаксиса массивов позволяет получить или изменить значение подчиненной ветки дерева по его индексу (аргументом является число), либо наименованию (аргументом является строка). | |
Create | Реализована | Функция | Tree.Create:<Новый объект (TREE)> | Функция создает новый объект дерева. | |
Tree | Реализована | Атрибут | Tree.Tree:<Объект дерева (TREE)> | Применимо к объекту ветки. Атрибут получает объект дерева из текущего объекта ветки. | |
Value | Реализована | Атрибут | Tree.Value:<Значение текущей ветки> | Применимо к объекту ветки. Атрибут получает или устанавливает значение текущей ветки. | |
Name | Реализована | Атрибут | Tree.Name:<Наименование текущей ветки (STRING)> | Применимо к объекту ветки. Атрибут получает или устанавливает наименование текущей ветки. | |
SelectedValue | Реализована | Атрибут | Да
|
Tree.SelectedValue:<Значение выбранной визуально ветки> | Применимо к объекту дерева. Атрибут получает или устанавливает значение выбранной визуально ветки. |
SelectedValueName | Реализована | Атрибут | Да
|
Tree.SelectedValueName:<Наименование выбранной визуально ветки (STRING)> | Применимо к объекту дерева. Атрибут получает или устанавливает наименование выбранной визуально ветки. |
Icon | Реализована | Атрибут | Да
|
Tree.Icon:<Индекс иконки текущей ветки (INT)> | Применимо к объекту ветки. Атрибут получает или устанавливает индекс иконки текущей ветки. |
Checked | Реализована | Атрибут | Да
|
Tree.Checked:<Индекс галочки текущей ветки (INT)> | Применимо к объекту ветки. Атрибут получает или устанавливает индекс галочки текущей ветки. |
CheckboxType | Реализована | Атрибут | Да
|
Tree.CheckboxType:<Тип галочки текущей ветки (INT)> | Применимо к объекту ветки. Атрибут получает или устанавливает тип галочки текущей ветки. |
IsVisible | Реализована | Атрибут | Да
|
Tree.IsVisible:<Видимость текущей ветки (INT)> | Применимо к объекту ветки. Атрибут получает или устанавливает визуальную видимость текущей ветки. |
IsExpanded | Реализована | Атрибут | Да
|
Tree.IsExpanded:<Раскрыта ли текущая ветка (INT)> | Применимо к объекту ветки. Атрибут раскрывает или закрывает текущую ветку, либо получает ее статус. |
IsInitialized | Реализована | Атрибут | Да
|
Tree.IsInitialized:<Инициализирована ли текущая ветка (INT)> | Применимо к объекту ветки. Атрибут получает флаг, была ли ветка визуально инициализирована (для неинициализированных веток система вызывает визуальное событие OnInitLeaf, в процессе которого программа может заполнять такие свойства ветки, как наличие дочерних веток, стиль и пр.). |
IsDisabled | Реализована | Атрибут | Да
|
Tree.IsDisabled:<Флаг недоступности текущей ветки (INT)> | Применимо к объекту ветки. Атрибут устанавливает или получает флаг недоступности редактирования ветки. |
IsSelected | Реализована | Атрибут | Да
|
Tree.IsSelected:<Выбрана ли текущая ветка визуально (INT)> | Применимо к объекту ветки. Атрибут устанавливает или получает признак того, что текущая ветка выбрана визуально. |
Selected | Реализована | Атрибут | Да
|
Tree.Selected:<Выбранная визуально ветка (BRANCH)> | Применимо к объектам ветки и дерева. Атрибут устанавливает или получает текущую выбранную визуально ветку. |
Level | Реализована | Атрибут | Tree.Level:<Уровень вложенности ветки на дереве (INT)> | Применимо к объекту ветки. Атрибут получает уровень вложенности текущей ветки относительно дерева. Для веток-сирот, эта функция возвращает 0, Для веток, прикрепленных к дереву, функция возвращает 1, для веток, прикрепленных к ветках с уровнем 1, функция возвращает 2 и т.д. | |
Index | Реализована | Атрибут | Tree.Index:<Индекс текущей ветки на ветке-родителе (INT)> | Применимо к объекту ветки. Атрибут получает или устанавливает позиционный индекс текущей ветки в массиве веток ветки-родителя (или дерева). Если ветка является веткой-сиротой, функция возвращает 0. При изменении индекса, ветка перемещается относительно соседей соответствующим образом. | |
Parent | Реализована | Атрибут | Tree.Parent:<Ветка-родитель текущей ветки (BRANCH)> | Применимо к объекту ветки. Атрибут получает или устанавливает ветку родителя текущей ветки. Если ветка прикреплена к непосредственно дереву, функция возвращает пустое значение. При установке этого атрибута ветка перемещается соответствующим образом в структуре дерева. Для указания того, что ветка перемещается в самый верхний уровень, в атрибут можно записывать объект дерева. | |
BackgroundColor | Реализована | Атрибут | Да
|
Tree.BackgroundColor:<Цвет фона текущей ветки (INT)> | Применимо к объекту ветки. Атрибут устанавливает или получает цвет фона текущей ветки. |
FontColor | Реализована | Атрибут | Да
|
Tree.FontColor:<Цвет текста текущей ветки (INT)> | Применимо к объекту ветки. Атрибут устанавливает или получает цвет текста текущей ветки. |
FontStyle | Реализована | Атрибут | Да
|
Tree.FontStyle:<Стиль шрифта текущей ветки (INT)> | Применимо к объекту ветки. Атрибут устанавливает или получает стиль шрифта текста текущей ветки. |
CopyTo | Реализована | Функция | Tree.CopyTo(<Объект в который происходит копирование>,<Индекс начальной ветки копирования (INT),<Количество веток для копирования (INT)>) | Применимо к объектам ветки и дерева. Функция осуществляет копирование значений дочерних веток текущего объекта в указанный объект (другого дерева, списка или таблицы значений). | |
LoadFrom | Планируется | Функция | Tree.LoadFrom(<Объект из которого происходит копирование>) | Применимо к объектам ветки и дерева. Функция осуществляет загрузку значений из указанного объекта. | |
Size | Реализована | Функция | Tree.Size(<Новое количество веток текущего объекта (INT)>):<Количество веток текущего объекта (INT)> | Применимо к объектам ветки и дерева. Функция получает или изменяет количество подчиненных веток текущего объекта. При добавлении, новые ветки будут заполнены пустыми значениями. | |
Add | Реализована | Функция | Tree.Add(<Добавляемый объект>,<Наименование добавляемой ветки (STRING)>,<Индекс иконки добавляемой ветки (INT)>):<Объект добавленной ветки (BRANCH)> | Применимо к объектам ветки и дерева. Функция добавляет новую ветку к массиву дочерних веток текущего объекта. Для ветки задается объект, и, если требуется, наименование и индекс иконки. Функция возвращает объект добавленной ветки. | |
Insert | Реализована | Функция | Tree.Insert(<Индекс для вставки новых веток (INT)>,<Добавляемый объект>,<Наименования добавляемых веток (STRING)>,<Индекс иконки добавляемых веток (INT)>,<Количество добавляемых веток (INT)>=1) | Применимо к объектам ветки и дерева. Функция вставляет новую ветку или совокупность новых веток в массив дочерних веток текущего объекта начиная с указанного индекса. Для веток задается объект, и, если требуется, наименование и индекс иконки. | |
Remove | Реализована | Функция | Tree.Remove(<Индекс удаляемых веток (INT)>,<Количество удаляемых веток (INT)>=1) | Применимо к объектам ветки и дерева. Функция удаляет указанное количество дочерних веток, начиная с указанного индекса. | |
Sort | Реализована | Функция | Tree.Sort(<Направление сортировки (INT)>=0,<Сортировать все дочерние ветки (INT)>=0,<Алгоритм сортировки (INT)>=1) | Применимо к объектам ветки и дерева. Функция производит сортировку дочерних веток текущего объекта по их значениям в указанном направлении с возможностью сортировать также все ветки нижних уровней. | |
SortByNames | Реализована | Функция | Tree.SortByNames(<Направление сортировки (INT)>=0,<Сортировать все дочерние ветки (INT)>=0,<Алгоритм сортировки (INT)>=1) | Применимо к объектам ветки и дерева. Функция производит сортировку дочерних веток текущего объекта по их наименованиям в указанном направлении с возможностью сортировать также все ветки нижних уровней. | |
DoReinit | Реализована | Функция | Да
|
Tree.DoReinit(<Форсировать инициализацию (INT)>=0) | Применимо к объектам ветки и дерева. Функция вызывает визуальное событие инициализации для указанной ветки и ее подчиненных веток, если они не были уже инициализированы ранее. Есть также возможность форсировать вызов события, даже если оно уже вызывалось для подчиненных веток. |
Get | Реализована | Функция | Tree.Get(<Индекс дочерней ветки (INT)>):<Значение ветки> | Применимо к объектам ветки и дерева. Функция получает значение ветки, подчиненной данной, которая адресуется по индексу. | |
GetByName | Реализована | Функция | Tree.GetByName(<Наименование дочерней ветки (STRING)>):<Значение ветки> | Применимо к объектам ветки и дерева. Функция получает значение ветки, подчиненной данной, которая ищется по ее наименованию. Регистр наименования может быть любым. Если ветка с указанным наименованием не найдена, функция возвращает пустое значение. | |
Set | Реализована | Функция | Tree.Set(<Индекс дочерней ветки (INT)>,<Значение ветки>) | Применимо к объектам ветки и дерева. Функция устанавливает значение ветки, подчиненной данной, которая адресуется по индексу. | |
SetByName | Реализована | Функция | Tree.SetByName(<Наименование дочерней ветки (STRING)>,<Значение ветки>) | Применимо к объектам ветки и дерева. Функция устанавливает значение ветки, подчиненной данной, которая ищется по ее наименованию. Регистр наименования может быть любым. Если ветка с указанным наименованием не найдена, функция добавляет новую ветку в конец списка подчиненных веток и устанавливает у нее указанное наименование и значение. | |
FirstChild | Реализована | Функция | Tree.FirstChild():<Первая дочерняя ветка (BRANCH)> | Применимо к объектам ветки и дерева. Функция получает первую подчиненную (дочернюю) ветку текущего объекта. | |
LastChild | Реализована | Функция | Tree.LastChild():<Последняя дочерняя ветка (BRANCH)> | Применимо к объектам ветки и дерева. Функция получает последнюю подчиненную (дочернюю) ветку текущего объекта. | |
First | Реализована | Функция | Tree.First():<Первая ветка текущего уровня (BRANCH)> | Применимо к объекту ветки. Функция получает первую подчиненную (дочернюю) ветку, имеющую ту же родительскую ветку, что и текущая. | |
Last | Реализована | Функция | Tree.Last():<Последняя ветка текущего уровня (BRANCH)> | Применимо к объекту ветки. Функция получает последнюю подчиненную (дочернюю) ветку, имеющую ту же родительскую ветку, что и текущая. | |
Next | Реализована | Функция | Tree.Next():<Следующая за текущей ветка текущего уровня (BRANCH)> | Применимо к объекту ветки. Функция получает следующую за текущей подчиненную (дочернюю) ветку, имеющую ту же родительскую ветку, что и текущая. | |
Prev | Реализована | Функция | Tree.Prev():<Предыдущая по отношению к текущей ветка текущего уровня (BRANCH)> | Применимо к объекту ветки. Функция получает предыдущую перед текущей подчиненную (дочернюю) ветку, имеющую ту же родительскую ветку, что и текущая. | |
ByIndex | Реализована | Функция | Tree.ByIndex(<Индекс дочерней ветки (INT)>):<Дочерняя ветка (BRANCH)> | Применимо к объектам ветки и дерева. Функция получает объект ветки, подчиненной данной, которая адресуется по индексу. | |
Find | Реализована | Функция | Tree.Find(<Объект для поиска>,<Включать дочерние ветки в поиск (INT)>=0):<Найденная ветка (BRANCH)> | Применимо к объектам ветки и дерева. Функция производит поиск указанного объекта среди значений дочерних веток текущего объекта (с возможностью поиска во вложенных ветках). Если ветка найдена, функция возвращает ее в виде объекта, иначе возвращается пустое значение. | |
FindByName | Реализована | Функция | Tree.FindByName(<Наименование ветки для поиска (STRING)>,<Включать дочерние ветки в поиск (INT)>=0):<Найденная ветка (BRANCH)> | Применимо к объектам ветки и дерева. Функция производит поиск указанной строки среди наименований дочерних веток текущего объекта (с возможностью поиска во вложенных ветках). Если ветка найдена, функция возвращает ее в виде объекта, иначе возвращается пустое значение. | |
SelectValue | Планируется | Функция | Да
|
Tree.SelectValue(<Значение>,<Режимы выбора (INT)>,<Заголовок окна выбора (STRING)>,<Выбранная ветка по умолчанию (BRANCH)>):<Выбранная ветка или пустое значение (BRANCH)> | Применимо к объекту дерева. Функция выводит стандартный диалог выбора для выбора значения дерева. Можно задать режим выбора и заголовок окна выбора. Если пользователь выбрал значение, диалог возвращает объект выбранной ветки и само значение, если требуется. |