delphi treeview给每个节点添加信息

-1 delphi treeview treenode

我想在每次填充树视图时向节点添加信息。我的意思是,例如,当我创建一个 ChildNode 时,我想将它与其 kinhsip 程度链接起来。也许属性数据是为此而制作的,但我不知道如何处理它。

Rem*_*eau 5

假设您使用的是 VCL 的TTreeView组件,而不是 FireMonkey 的TTreeView组件或其他第三方树视图,那么处理这种情况的最佳方法是从 VCL 的TTreeNode类派生一个新类,并向其中添加一个自定义字段以保存您想要的内容值,然后您可以使用该TTreeView.OnCreateNodeClass事件来TTreeView创建类的实例:

type
  TMyTreeNode = class(TTreeNode)
  public
    Toto: Real;
  end;

procedure TMyForm.TreeView1CreateNodeClass(Sender: TCustomTreeView; var NodeClass: TTreeNodeClass);
begin
  NodeClass := TMyTreeNode;
end;
Run Code Online (Sandbox Code Playgroud)

然后,每当您添加新节点或需要检索现有节点的自定义值时,您只需将指针类型转换TTreeNode为TMyTreeNode即可访问您的自定义字段:

Node := TreeView1.Items.Add(nil, '...');
TMyTreeNode(Node).Toto := ...;

Node := TreeView1.Items.AddChild(Node, '...');
TMyTreeNode(Node).Toto := ...;

...

Value := TMyTreeNode(TreeView1.Items.Item[index]).Toto;
Run Code Online (Sandbox Code Playgroud)