目前我有这个代码将一些节点添加到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;
我想在非可见状态下添加节点,我的意思是完全不可见。
我知道我可以在使用VDT1.IsVisible[Node] := boolean;
添加节点之后设置节点的可见性但我想在树中显示之前将其设置为不可见,考虑到我添加的记录设置为DATArecord.Visible:= False;
< / p>
因此,如果Datarecord.visible
等于true,则添加具有可见状态的节点。如果为false,添加具有不可见状态的节点我该怎么做?
答案 0 :(得分:5)
创建节点后,只需立即设置节点的IsVisible
属性:
Result := AVST.AddChild(ANode);
AVST.IsVisible[Result] := AObject.Visible; // <-- add this
自AddVSTStructure()
对内调用(Begin/End)Update
以来,用户不会看到添加的节点,因此添加不会执行任何屏幕更新。