在虚拟树中设置节点状态

时间:2015-06-17 08:04:04

标签: delphi nodes virtualtreeview

我创建了一个包含多个节点的虚拟树,我想禁用其中一些节点。我已经看到节点有States属性。这是TVirtualNodeStates类型的属性,因此我检查了我可以设置的状态,显然TVirtualNodeStatesset of TVirtualNodeState

TVirtualNodeState可以设置为vsDisabled所以我想我需要在虚拟树中禁用节点。

但我做不到。这是我实际尝试过的:

lNode := myTree.addChild(nil);
lNode.States := vsDisabled;

它给了我错误

  

TVirtualNodeStatesTVirtualNodeState

之间不兼容的类型

如何禁用节点呢?

1 个答案:

答案 0 :(得分:4)

您可以编写Node.States := [vsDisabled];,以使您的代码可编辑。但这不是你应该做的。有些节点状态必须保持不变,并且通过上述语句将它们丢弃并仅设置vsDisabled。你想写:

Include(Node.States, vsDisabled);

或:

Node.States := Node.States + [vsDisabled];

另一个选项(应该首选)是通过IsDisabled属性设置状态:

VirtualTree.IsDisabled[Node] := True;