如何在VirtualStringTree中添加不可见的节点?

Vla*_*pin 3 delphi virtualtreeview tvirtualstringtree delphi-xe8

目前我有这个代码来添加一些节点 VST

function AddVSTStructure(AVST: TCustomVirtualStringTree; ANode: PVirtualNode; AObject: TDATArecord): PVirtualNode;
var
  Data: PUserData;
begin
  Result := AVST.AddChild(ANode);
  Data := AVST.GetNodeData(Result);
  AVST.ValidateNode(Result, false);
  Data^.FObject := AObject;
end;

//adding node
VDT1.BeginUpdate;
try
  DATArecord.name := 'nodename';
  DATArecord.Visible:= False;
  AddVSTStructure(VDT1, nil, DATArecord);
finally
  VDT1.EndUpdate;
end;
Run Code Online (Sandbox Code Playgroud)

我想在非可见状态下添加节点,我的意思是完全不可见.

我知道我可以在添加它之后设置节点的可见性VDT1.IsVisible[Node] := boolean;但我想在树中显示之前将其设置为不可见,考虑到我添加的记录设置为DATArecord.Visible:= False;

因此,如果Datarecord.visible等于true,则添加具有可见状态的节点.如果是false,添加具有不可见状态的节点我该怎么做?

Rem*_*eau 5

IsVisible创建节点后,只需立即设置节点的属性:

Result := AVST.AddChild(ANode);
AVST.IsVisible[Result] := AObject.Visible; // <-- add this
Run Code Online (Sandbox Code Playgroud)

用户不会看到添加的节点,因为AddVSTStructure()(Begin/End)Update对内调用,因此添加不会执行任何屏幕更新.