Конечный корневой узел в VTV
(или VST
) - это специальный невидимый узел, который действует как родительский для всех созданных пользователем корневых узлов (узлов, созданных с помощью parent = nil
).Этот специальный невидимый узел имеет в своей конструкции свойства NextSibling
и PrevSibling
, указывающие на себя.
Чтобы определить, является ли узел корневым узлом (в смысле созданного пользователем корня), вы можете, например, сделать:
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 (в справке)