gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:49:48 26 4
gpt4 key购买 nike

目前我有这段代码可以将一些节点添加到 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;,我想在在树中显示之前将其设置为不可见。

所以,如果 Datarecord.visible等于true,添加状态可见的节点。如果为 false,请添加具有不可见状态的节点,我该怎么做?

最佳答案

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

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

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

关于delphi - 如何在VirtualStringTree中添加不可见节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com