You may write a function like follows. The Tree
parameter there specifies the virtual tree, the Node
is the node for which you want to check if it's visible, and the Column
optional parameter is the index of a column if you would need to determine whether the node and even column is visible in client rect:
function IsNodeVisibleInClientRect(Tree: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex = NoColumn): Boolean;
begin
Result := Tree.IsVisible[Node] and
Tree.GetDisplayRect(Node, Column, False).IntersectsWith(Tree.ClientRect);
end;
But maybe there's a more straightforward way...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…