В VCL TTreeNode
имеет HasChildren
свойство:
Указывает, есть ли у узла дочерние элементы.
HasChildren
- истина, если у узла есть подузлы, или ложь, если у узла нет подузлов. Если ShowButtons
представления дерева имеет значение true, а HasChildren
- true, кнопка плюса (+) появится слева от узла, когда он свернут, и кнопка минуса (-) появится, когда узел расширен.
Примечание. Если у узла нет дочерних элементов, установка HasChildren
в значение true покажет кнопку (+) плюс, но не добавит дочерние узлы, и узел не может быть развернут.
Итак, вы можете установить для HasChildren
узла значение true, прежде чем для него будут созданы фактические дочерние узлы. Затем, после того, как вы определили, есть ли у узла какие-либо фактические дочерние узлы, вы можете сбросить HasChildren
в false, если дочерних узлов нет.
Несмотря на то, что в документации предлагается выше, попытка развернуть узел, у которого нет дочерних узлов, но для которого HasChildren
установлено значение true, по крайней мере вызовет событие TTreeView.OnExpanding
. Это хорошее место для заполнения реальных дочерних узлов и обновления HasChildren
.