Hi,
The index is relative to its parent, the row is relative to the root of the treeview. You can use the FindVirtualNodeByRow or FindNodeByRow functions to retrieve the node for a specific row. If you are working with a collection, you can persist a reference to the node instead by using the following code:
procedure TForm1.TVprogrammasAfterSelectNode(Sender: TObject; ANode: TAdvTreeViewVirtualNode);
var
n: TAdvTreeViewNode;
begin
n := ANode.Node;
MyFunction1(n);
MyFunction2(n);
end;
As n will always refer to the same collection item, even if the index/row changes.