Juri Shutenko Personal Homepage. Visual FoxPro.

ActiveX компонент TreeView. Часть 2. Свойства и методы объектов Nodes и Node - I.

Во введении мы рассмотрели свойства самого компонента, которые могут быть установлены с помощью визуальных средств. В этой части приведен перевод Help по свойствам и методам объекта Nodes - коллекции объектов Node, а также свойствам объекта Node. Все-таки закрепим в памяти определения:

  • Объект Node является элементом TreeView и может содержать текст и картинки.
  • Коллекция узлов Nodes содержит один или более объектов Node.

Для получения ссылки на объект TreeView можно использовать соедующий синтаксис:
 
container.object_TreeView. В дальнейшем описании вместо длинного сочетания container.object_TreeView будем использовать сокращенный вариант object, подразумевая под этим указанную ссылку.

Объект Nodes - коллекция объектов Node - Свойства и методы
Для получения ссылки на объект Nodes можно использовать соедующий синтаксис:
 
container.object_TreeView.Nodes.

Объект Nodes имеет два свойства:

и три метода:

описания которых приведены ниже.

Свойство Count

Возвращает число объектов Node в коллекции Nodes.

Синтаксис:

object.Nodes.Count

Возвращает численное значение равное числу объектов Node в коллекции Nodes.

вернуться к списку свойств
Свойство Item

Возвращает cсылку на объект Node в коллекции Nodes.

Синтаксис

object.Nodes.Item(index)

Возвращает ссылку на конкретный объект Node коллекции Nodes по его позиции или ключу.

index - целое число или строка, позволяющее адресоваться к индивидуальному узлу коллекции узлов.

вернуться к списку свойств
Метод Add
Добавляет объект Node в коллекцию Nodes.

Синтаксис

object.Nodes.Add(relative,relationship,key,text,image,selectedimage)

Параметр Описание
relative необязательный параметр, представляющий собой индексный номер или ключ уже существующего узлового объекта Node. Взаимосвязь нового узлового объекта и уже существующего узлового объекта помещена в следующем аргументе - relationship;
relationship необязательный параметр, точно определяюший относительное положение узлового объекта Node, как описано в установках для этого параметра (установки tvwFirst, tvwLast, tvwNext (default), tvwPrevious, tvwChild, которые детально описаны ниже);
key необязательный параметр, представляющий собой уникальную строку - ключ (идентификатор), который может быть использован для нахождения и возврата значения объекта Node при помощи метода Item;
text обязательный параметр, который представляет собой тот самый текст, который и появится в виде метки узла;
image необязательный параметр, Индекс картинки в ассоциированном контроле ImageList (это будет рассмотрено в другом примере, так как сейчас главное научиться "заселять" этот объект);
selectedimage необязательный параметр. Индекс картинки в ассоциированном контроле ImageList который показывается когда узловой объект Node выбран (смотри комментарий к предыдущему определению).

Этот метод будет детально рассмотрен в следующей части, так как является основным методом, используемым для "заселения" и перестройки компонента TreeView

вернуться к списку методов
Метод Clear

Удаляет все объекты Node из коллекции Nodes.

Синтаксис:

object.Nodes.Clear

Удаляет все объекты коллекции Nodes. Метод не имеет параметров.

вернуться к списку методов
Метод Remove
Удаляет конкретный объект Node из коллекции Nodes.

Синтаксис:

object.Nodes.Remove(index)

Удаляет конкретный объект из коллекции Nodes.

index - целое число или строка, которые уникально определяют члена коллекции Nodes. Целое число представляет собой значение свойства Index; строка - значение свойства Key объекта Node

вернуться к списку методов

Объект Node, член коллекции объектов Nodes - Свойства и методы

Cсылку на объект Node можно получить при помощи синтаксиса:

object.Nodes(index)

object.Nodes.Item(index)

index - целое число или строка, которые уникально определяют члена коллекции Nodes. Целое число представляет собой значение свойства Index; строка - значение свойства Key.

Примечание:
Узлы могут содержать, и текст и картинки. Однако, для того, чтобы использовать картинки вы должны связать с компонентом TreeView другой компонент ImageList используя свойство объекта TreeView ImageList.

Картиники могут меняться в зависимости от состояния узлов (node); например, выбранный узел может имеет иную картинку, нежели чем невыбранный, чего можно достичь, присвоив определенную картинку из связанного компонента ImageList свойству SelectedImage..

Перевод детального описания всех свойств объекта Node приведен по файлу справки Cmctl198.chm.

в справке Microsoft незаслуженно отсутствуют описания свойств:

которые очень важны при работе с TreeView

Свойство BackColor
Устанавливает цвет фона метки (текста) конкретного объекта Node) коллекции Nodes компонента TreeView.

Синтаксис

object.BackColor=color

Примечание
Для установки цвета фона метки (текста) используйте стандартную VFP функцию RGB(). Например:

object.Nodes(14).BackColor=RGB(255,0,0)
вернуться к списку свойств
Свойство Bold
Возвращает или устанавливает значение свойства, определяющего, как будет выводиться текст объекта - жирным стилем или нет.

Синтаксис

object.Bold [= boolean]

boolean - логическое выражение, определяющее стиль вывода текста объекта.

Значение Описание
.F. (По умолчанию) Текст выводится как обычный
.T. Текст выводится жирным стилем.
вернуться к списку свойств
Свойство Checked
Возвращает или устанавливает значение свойства, определяющего отмечен выбранный элемент или нет.

Синтаксис

object.Checked [= boolean]

boolean- логическое выражение, определяющее отмечен элемент или нет.

Значение Описание
.F. (По умолчанию) Элемент не отмечен.
.T. Элемент отмечен.

Комментарий.
Свойство используется только тогда, когда для указанного дерева свойство Checkboxes установлено в .T. , то есть в том случае, если мы выводим checkbox'ы перед элементами дерева (Смотри справку в части 1). Если пользователь переключает checkbox из одного состояния в другое щелчком мыши, наступает событие NodeChecked. Если мы устанавливаем или снимаем метку с checkbox программно, событие не наступает, независимо от установки _VFP.AutoYield.

вернуться к списку свойств
Свойство Child
Возвращает ссылку на первый дочерний элемент узла (объекта Node) компонента TreeView.

Синтаксис

object.Child

Примечание

Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node,

Поскольку свойство Child возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную:

Комментарий.
Если выбранный или адресуемый программно узел не имеет дочерних узлов, будет сгенерирована ошибка. Для того, чтобы избежать ее появления, проверьте наличие дочерних узлов, используя свойство Children.

вернуться к списку свойств
Свойство Children

Возвращает число дочерних узлов ( Node), содержащихся в родительском узле.

Синтаксис

object.Children

Примечание:

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

вернуться к списку свойств
Свойство Expanded

Возвращает или устанавливает значение, определяющее развернут или свернут узел ( Node) в компоненте TreeView.

Синтаксис

object.Expanded[= boolean]

boolean - логическое выражение, определяющее развернут или свернут узел.

Величина Описание
.T. The Node is currently expanded.
.F. The Node is currently collapsed.

Примечание
Вы можете использовать свойство Expanded для программного развертывания узла (Node).

Следующий фрагмент кода демонстрирует тот же эффект, какой производит двойной щелчом на первом узле:

TreeView1.Nodes(1).Expanded = .T.

Когда узел развертывается установкой величины, генерируется событие Expand.
Если узел не имеет дочерних узлов, установка свойства игнорируется.

вернуться к списку свойств
Свойство EnsureVisible

Предоставляет возможность увидеть требуемый объект Node, раскрывая при необходимости ветку или прокручивая TreeView, или выполняя оба указанных действия, для вывода объекта в видмую зону компонента для обеспечения видимости объекта.

Синтаксис

object.EnsureVisible= .T.

вернуться к списку свойств
Свойство ExpandedImage

Возвращает или устанавливает значение индекса или ключа компонента ListImage, связанного с компонентом TreeView; соответствующая выбранная картинка отображается на компоненте TreeView, когда узел развернут.

Синтаксис:

object.ExpandedImage[ = number]

number - Целое число или символьное выражение, которые определяют, соответственно значение индекса или ключа картинки, введенной в компонтент ImageList

Примечание
Это свойство позволяет вам изменять картинку, связанную с узлом, когда пользователь производит двойной щелчок по левой клавише мыши на узле, или когда вы устанавливаете свойство Expanded в .T. программно.

вернуться к списку свойств
Свойство FirstSibling

Возвращает ссылку на первый дочерний узел в иерархии одного уровня (объект Node) компонента TreeView.

Синтаксис

object.FirstSibling

Примечание

Дочерний узел, который выводится в первой позиции одного уровня иерархии узлов. Какой узел появится действительно в первой позиции зависит от того, отсортированы или нет узлы одного уровня, что в свою очередь определяется значением свойства Sorted узла.

Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node.

Поскольку свойство FirstSibling возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную.

вернуться к списку свойств
Свойство ForeColor

Устанавливает цвет метки (текста) конкретного объекта Node) коллекции Nodes компонента TreeView.

Синтаксис

object.ForeColor=color

Примечание

Для установки цвета метки (текста) используйте стандартную VFP функцию RGB(). Например:

object.Nodes(14).ForeColor=RGB(255,0,0)
вернуться к списку свойств
Свойство FullPath

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

Синтаксис

object.FullPath

Примечание

Полностью определенный путь представляет собой цепь значений свойства Text в ссылках. Значение свойства PathSeparator будет определять, каким разделителем эти значения будут разделены.

вернуться к списку свойств
Свойство Image

Возвращает или устанавливает имя картинки, указанное в качестве пятого параметра для конкретного объекта Node в методе Add коллекции Nodes.

Синтаксис

object.Image = [name]

Примечание
При присвоении узлу новой картинки необходимо буть уверенным, что картинка с этим именем имеется в связанном компоненте ImageList. В противном случае будет сгенерирована ошибка "OLE IDispatch exception code 0 from ListImages.Element not found"

вернуться к списку свойств
Свойство LastSibling

Возвращает ссылку на последний дочерний узел.

Синтаксис

object.LastSibling

Примечание
Последний дочерний узел представляет собой узел, который появится в последней позиции одного уровня иерархии узлов.Какой из узлов действительно появится в последней позиции одного уровня иерархии, определяется значение свойства узла Sorted. Для того, чтобы отсортировать узлы одного уровня, установите свойство Sorted родительского узла в.T..

Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node.

Поскольку свойство LastSibling возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную:

вернуться к списку свойств
Свойство Next

Возвращает ссылку на следующий узел компонента TreeView.

Синтаксис

object.Next

Примечание
Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node:

Поскольку свойство Next возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную:

вернуться к списку свойств
Свойство Parent

Возвращает или устанавливает ссылку на родительский узел для определенного узла. Доступен только в run time.

Синтаксис

object.Parent[ = node]

node - Узел, который станет родительским для определенного узла.

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

Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node.

Поскольку свойство Parent возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную:

вернуться к списку свойств
Свойство Previous

Возвращает ссылку на предыдущий узел для определенного узла.

Синтаксис:

object. Previous

Примечание
Свойства Child, FirstSibling, LastSibling, Previous, Parent, Next и Root - все возвращают ссылку на другой объект Node. Благодаря этому, вы можете одновременно ссылаться и проводить действия над объектом Node.

Поскольку свойство Previous возвращает ссылку на узел, то присвоив это свойство произвольной переменной, вы можете производить действия используя эту переменную:

вернуться к списку свойств
Свойство Selected

Возращает или устанавливает значение свойства, определяющего - выбран узел или нет.

Синтаксис:

object.Selected [ = boolean]

boolean - Логическое выражение, определяющее выбран узел или нет.

Примечание:
Используйте свойство Selected для программного выбора узла. Когда вы выбрали узел таким способом, вы можете проиводить над ним все операции и устанавливать или определять его свойства..

Для выбора индивидуального узла, вы можете сослаться на него по величине свойствIndex или Key.

вернуться к списку свойств
Свойство SelectedImage

Возвращает или устанавливает значение индекса или ключа свойства ImageList, связанного с объектом ImageList.

Синтаксис

object.SelectedImage [ = index]

index - Целое число или уникальная строка, который определяет картинку в связанном объекте ImageList по свойству Index или Key соответственно.


Примечание
Если это свойство установлено в Null, используется маска картинки по умочанию, определенной в свойстве Image.

вернуться к списку свойств
Свойство Sorted

Возвращает или устанавливает значение свойства, определяющего будут или нет отсортированы по алфавиту:

  • дочерние узлы определенного узла
  • корневого узла.

Синтаксис

object.Sorted [ = boolean]

boolean - Логическое выражение, определяющее будет или нет сортироваться узлы.

Величина Описание
.T. Узлы сортируются по алфавиту, по значению свойства Text. Узлы, значение свойства Text которых начинается с номера, сортируются как символьные строки, где число в начальной позиции определяет первичную сортировку, а последующие определяют второй уровень сортировки.
.F. Узлы не сортируются.

Примечание
Свойство Sorted может быть использовано двумя путями: первый - сортировать узлы верхнего (корневого) уровня и, второй, сортировать непосредственные дочерние узлы любого индивидуального узла.
Сортировка производится только по текущему набору узлов. После ввода нового узла, нужно проводить сортировку повторно!

вернуться к списку свойств
Свойство Visible

Возвращает логическую величину, определяющую виден-ли конкретный элемент Node

Синтаксис

object.Visible

Возвращается boolean - Логическое выражение, определяющее виден или нет конкретный узел.

Величина Описание
.T. объект виден
.F. объект не виден.

Примечание
Свойство Visible read-only.

вернуться к списку свойств
Свойство Key

Возвращает или устанавливает значение ключа для текущего или выбранного программно узла (объекта Node).

Синтаксис

object.Key [ = value]

value - Строка, которая уникально определяетзначение ключа узла.

Примечание
Если вы назначите узлу уже существующее в объекте TreeView значение, то это вызовет генерацию ошибки.

вернуться к списку свойств
Свойство Tag

Возвращает или устанавливает значение свойства, содержащего какую-либо дополнительную информацию, которая может быть использована в программе для узла (объекта Node).

Синтаксис

object.Tag [ = value]

value - Строка,содержащая текст дополнительной информации.

вернуться к списку свойств
Свойство Text

Возвращает или устанавливает значение текстовой метки текущего или выбранного программно узла (объекта Node).

Синтаксис

object.Text [ = value]

value - Строка,содержащая текст метки узла.

вернуться к списку свойств
 
Cелектор для быстрого перехода на сайты, связанные с Visual FoxPro.