ИМХО - динамическая сортировка - это неверное решение.
----------------------------
Поймите, что "динамическая сортировка" не принесет ничего хорошего: Она будет срабатывать у всех - тормоза обеспечены. Вы мыслите 1-м или 2-мя пользователями. А представьте, что в системе работают 800 пользователей(кстати реальное число пользователей TDMS у нашего клиента)...........
Простейший пример: Юзер1 открыл дерево, сработала ваша функция по TreeBeforeShow - дерево начало сортироваться.
В этот момент Юзер2 создаёт в этом дереве объект(или добаляет ссылку/удаляет ссылку). Как отработает функция, если еще не известно описание создаваемого объекта, или еще не заполнены какие-либо условия сортировки?
А если делать еще и With Obj.Objects...... то вообще косяки могут вылезть, если кто-нить удалит какой-нить объект во момент сортировки.
Простейший пример2:
Юзер1 открывает объект - запускается функция сортировки. Юзер1 видит не все объекты состава.
Юзер2 открывает тот же объект - опять запускается функция сортировки, при этом порядок другой, т.к. Юзер2 видит больше объектов, чем Юзер1.
Ну и последнее....
Никак не могу понять, почему
нам нужна была сортировка комплектов, что автоматическим образом, как выяснилось, нереализуемо - все равно надо "досортировывать" руками.
ИМХО когда произойдет
пожелания по сортировке могут поменяться.
вот именно тогда и поменяете алгоритм сортировки при создании.