Ткнулся в lazarus понастальгировать, накидал форму за минуту (скилл то не пропьешь!). Форма - с TTreeView. Но в ноду дерева, как оказалось, положить ничего кроме нетипизированного pointer-а нельзя. А подсунуть своего потомка для создания нод в дерево нельзя (хотя в FPC даже дженерики есть) - нужно наследовать и контейнер и собственно дерево - десяток методов перекрывать только для правки сигнатуры, это не считая сборки нового контрола в пакет, чтобы IDE подцепила в design-time. Где ограниченный полиморфизм, а!? Грущу...