DBTreeView. Разработка компонента. Первая волна

На данной странице размещены статьи из моей первой волны разработки компонента DBTreeView. На тот момент я много чего не знал. Учился в процессе. Но пока писал компонент научился многим принципиальным вещам в программировании в Delphi. У этой волны нет результата, точнее он есть, но публиковать я его здесь не буду, так как там много принципиальных ошибок. Готовый компонент для работы с MySQL можно скачать в другом цикле статей – DBTreeView. Разработка компонента. Вторая волна – там уже более менее рабочая версия.

Деревья. Иерархические данные. DBTreeView своими руками.


 SMALL TREE. Загрузка всего дерева сразу (для деревьев в 100-200 узлов на дерево)

Просмотр, добавление, редактирование, удаление 1 узла.

Перемещение узлов вверх и вниз.

Прокрутка колесом мыши в момент Drag&Drop

Добавление нескольких узлов

Удаление нескольких узлов с помощью TreeView.Selections

 Работа с CheckBoxes

Добавляем Checkboxes

Удаляем несколько узлов с помощью Checkboxes

Приведение CheckBoxes в нормальное состояние

Обход узлов (полный обход и ныряние в узел)

Запоминание свернутости

______________________________________________________

AVERAGE TREE.  Динамическая загрузка (для деревьев в 500-1000 узлов на уровень)

В этом разделе всё, что изменится при динамической загрузке дерева – собственно загрузка, удаление, работа с чекбоксами.

Динамическая подгрузка веточек

Чекбоксы в отдельном потоке (для ускорения работы)

Делим узлы на папки и файлы

       Переподчинение узлов

Переподчинение узлов

Корректная замена StateIndex иконок при DragDrop

Удаление узлов

Удаление потомков узла из TreeView

Рекурсивное удаление Selected узла (поддерева)

Удаление “Checked” узлов в отдельном потоке

Копирование и вставка узлов

Копирование записей в БД с сохранением структуры (часть1)

Копирование узлов в TreeView (часть2)

Вырезание и вставка

Вырезать и вставить

Загрузка картинок из ресурсов

Добавление изображений из ресурсов


VirtualStringView

Базовые операции

Leave a Reply

Your email address will not be published.