what is the difference between tvirtualstringtree and ttreeview?
I normally use the standard TTreeView because
- it comes with Lazarus
- it is maintained by the Lazarus team
- it is sufficient for small to medium-large trees
I switch to VirtualTreeView when
- there are many (millions) of records
- the records are stored somewhere and I do not want, or cannot afford, to store them a second time in the tree
- I need columns like in a stringgrid
Starting with Laz v2.0 the virtualtreeviews package comes with Lazarus and is maintained by the Lazarus devs, too. Note that this is an out-dated version (v5.5.2) while the official development is at v7 or so. But I never needed anything from the newer versions. Nevertheless, starting with Laz v.2.2 the internal virtualtreeview has been renamed so that a newer version can be installed in parallel to the built-in version if needed.