【问题标题】:Set node state in a virtual tree在虚拟树中设置节点状态
【发布时间】:2015-06-17 08:04:04
【问题描述】:

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

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

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

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

它给了我错误

TVirtualNodeStatesTVirtualNodeState 之间的类型不兼容

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

【问题讨论】:

    标签: delphi nodes virtualtreeview


    【解决方案1】:

    您可以编写Node.States := [vsDisabled];,以使您的代码可编译。但这不是你应该做的。有些节点状态您必须保持不变,并且通过上述声明,您将把它们扔掉并只设置vsDisabled 之一。你想写:

    Include(Node.States, vsDisabled);
    

    或:

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

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

    VirtualTree.IsDisabled[Node] := True;
    

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多