You should give Virtual TreeView a try. Compared to Windows’ SysListView32/64 (wrapped as TListView), it makes custom drawing and various controls much easier to implement. It also avoids the flickering that often occurs with SysListView during scrolling, and adding large numbers of items is extremely fast.