gpt4 book ai didi

delphi - 如何知道节点是 Virtual TreeView 中的根节点?

转载 作者:行者123 更新时间:2023-12-03 15:30:08 28 4
gpt4 key购买 nike

我正在使用虚拟 TreeView 。有没有可靠的方法来知道节点是否是根节点?

我尝试使用

if not Assigned(Node.Parent) then
Output('This is root')
else
Output('This is not root')

但是不起作用。

我尝试使用

if Node = tvItems.RootNode then
Output('This is root')
else
Output('This is not root')

但也不起作用。

最佳答案

VTV(或VST)中的最终根节点是一个特殊的不可见节点,它充当所有用户创建的根节点(使用创建的节点)的父节点。父=零)。这个特殊的不可见节点的 NextSiblingPrevSibling 属性被设计为指向自身。

要检测节点是否是根节点(就用户创建的根而言),您可以例如:做:

procedure TForm16.tvItemsNodeClick(Sender: TBaseVirtualTree;
const HitInfo: THitInfo);
begin
if HitInfo.HitNode.Parent.NextSibling = HitInfo.HitNode.Parent then
Caption := 'Root node'
else
Caption := 'Not root node';
end;

或者,正如OP评论的那样,并且不使用内部实现细节:

procedure TForm16.tvItemsNodeClick(Sender: TBaseVirtualTree;
const HitInfo: THitInfo);
begin
if HitInfo.HitNode.Parent = Sender.RootNode then
Caption := 'Root node'
else
Caption := 'Not root node';
end;

引用:TBaseVirtualTree.RootNode 属性(在帮助中)

关于delphi - 如何知道节点是 Virtual TreeView 中的根节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057439/

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