我创建了一个包含多个节点的虚拟树,我想禁用其中一些节点。我已经看到节点有States
属性。这是TVirtualNodeStates
类型的属性,因此我检查了我可以设置的状态,显然TVirtualNodeStates
是set of TVirtualNodeState
。
TVirtualNodeState
可以设置为vsDisabled
所以我想我需要在虚拟树中禁用节点。
但我做不到。这是我实际尝试过的:
lNode := myTree.addChild(nil);
lNode.States := vsDisabled;
它给了我错误
之间不兼容的类型
TVirtualNodeStates
和TVirtualNodeState
如何禁用节点呢?
答案 0 :(得分:4)
您可以编写Node.States := [vsDisabled];
,以使您的代码可编辑。但这不是你应该做的。有些节点状态必须保持不变,并且通过上述语句将它们丢弃并仅设置vsDisabled
。你想写:
Include(Node.States, vsDisabled);
或:
Node.States := Node.States + [vsDisabled];
另一个选项(应该首选)是通过IsDisabled
属性设置状态:
VirtualTree.IsDisabled[Node] := True;