Показать сообщение отдельно
Старый 30.08.2018, 08:17   #6  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Но можно свести весь код к командам вызова соответствующих методов
Можно вообще свести все только к объявлению экземпляра обработчика в classDeclaration, его инициализации в init() формы (привязка к контролу дерева, форме и управляемому источнику данных на форме) и вызов отрисовки корня и первого уровня в run() формы. Все остальное - перехват и отработка классом-обработчиком событий контрола. Управление источником данных (создание/редактирование/удаление) - через контекстное меню дерева или перехват комбинаций клавиш на дереве, что тоже реализуемо в классе-обработчике. При должном уровне абстракции в реализации класса (работа через SysDict-семейство классов, Common и коды полей/таблиц) можно одним классом покрыть все деревья.

Мы у себя именно так и реализовали, дабы не повторять одно и то же по 17 иерархическим таблицам в 34 формах (на каждую по форме редактирования и lookup-форме).
__________________
Мы летаем, кружимся, нагоняем ужасы ...
За это сообщение автора поблагодарили: YoungPadawan (1).