在虚拟树中设置节点状态

我创建了一个具有多个节点的虚拟树,并且我想禁用它们中的一些。 我已经看到有一个节点的States属性。 这是TVirtualNodeStates类型的一个属性,所以我检查了我可以设置的状态,显然TVirtualNodeStates是一set of TVirtualNodeState

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

但我不能那样做。 这是我真正尝试过的:

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

它给了我错误

TVirtualNodeStatesTVirtualNodeState之间的不兼容类型

那么我怎样才能禁用节点呢?


你可以写Node.States := [vsDisabled]; ,使您的代码可编译。 但这不是你应该做的。 有节点状态,你必须保持不动,并提到的声明,你会扔掉它们,只设置vsDisabled之一。 你想要写:

Include(Node.States, vsDisabled);

要么:

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

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

VirtualTree.IsDisabled[Node] := True;
链接地址: http://www.djcxy.com/p/35021.html

上一篇: Set node state in a virtual tree

下一篇: Simulating virtual methods in Delphi