这是一个非常简单的问题,我不得不问,但我无法在任何地方找到答案。
我使用的是C ++ Builder XE6,我想使用TTreeView。我找到了几个关于它的教程,说添加节点的方法是这样做:
TreeView->Items->Add(NULL, "name");
但它不起作用,我得到的错误是Add()不是Items的成员。经过快速研究后,我发现Add()是TTreeNodes的一种方法,但TreeView-> Items是一个TTreeViewItem。也许我读过的所有教程都已经过时了。无论如何,我无法找到任何办法。
感谢您的帮助。
答案 0 :(得分:0)
您需要调用TreeView->Items->AddChild(NULL, "name");
- 这将添加root的子节点(NULL)。如果需要添加特定节点的子节点,则需要将该节点作为参数传递。
根据docs,并快速检查hpp文件,Items
为TTreeNodes
,因此Add
和AddChild
应该有效。您确定自己没有访问Items[0]
吗?
答案 1 :(得分:0)
TTreeViewItem
是FireMonkey类,而不是VCL类。您阅读的所有教程都可能基于VCL。
在VCL中,TTreeView::Items
作为TTreeNodes
对象:
__property TTreeNodes* Items = {read=FTreeNodes, write=SetTreeNodes};
TTreeNodes
确实有Add()
方法:
TTreeNode* __fastcall Add(TTreeNode* Sibling, const System::String S);
您展示的代码在VCL中运行良好。
在FireMonkey中,TTreeView::Items
是TTreeViewItem
个对象的索引数组:
__property TTreeViewItem* Items[int Index] = {read=GetTreeItem};
TTreeViewItem
没有Add()
方法。将新节点添加到FireMonkey TTreeView
的正确方法是创建TTreeViewItem
对象并设置其Parent
属性,例如:
TTreeViewItem *node = new TTreeViewItem(TreeView);
node->Text = "name";
node->Parent = TreeView;