-
MY PROJECTS
-
Recent Posts
- Reading.CleanArchitecture.BusinessRules
- Reading.CleanArchitecture.PolicyAndLevel
- Reading.CleanArchitecture.Boundaries
- Reading.CleanArchitecture.Independence
- Reading.CleanArchitecture.ArchitectureDefinition
- Algo.Java.CheckPrimeNumber
- Algo.Java.DetectPatternInArray
- Algo.Java.Regex.Tips
- Algo.Java.925. Long Pressed Name.TwoPointers
- Algo.Java.MaxRepeatingSubString
- Algo.Java.DayOfTheYear
- Algo.Java.Number of Days Between Two Dates
- Algo.Java.GCDandLCM
- Algo.Java.ConvertBinaryToInt.Theory
- Algo.Java.prefixesDivBy5
- Algo.Java.ShiftArray.ClosestTargetInCircularArray
- Algo.Java.ShiftArray
- Algo.Java.PowerOfTreeSet
- Algo.Java.ShiftArrayToTheRight2
- Java.Algo.RotateMatrix.90.Clockwise
Categories
- Aptana
- Azure
- C#
- DataSnap
- DBExpress
- Delphi
- Delphi и сети
- Delphi. Язык программирования
- ExtJS
- FastReport
- FireDAC
- FireMonkey
- GIT
- ICS
- IDE
- IIS
- Indy
- InnoSetup
- javascript
- jQuery
- JSON
- LiveBindings
- MSHTML
- MySQL
- PHP
- REST
- Ribbons
- SMS
- SQL инструкции
- SVN
- TRichView
- UniGui
- WebBroker
- WinAPI
- Windows
- Алгоритмы
- Без рубрики
- Деревья
- Ищу ответ
- Компонентостроение
- Мои компоненты
- Начальный уровень
- Обработка исключений
- Парсинг
- Потоки(Threads)
- Регулярные выражения
- Тестирование приложений
Category Archives: Деревья
Delphi. Иерархические данные. DBTreeView своими руками. Чекбоксы в отдельном потоке
Решил добавить многопоточности в дерево. Cтолкнулся с тем, что при большом количестве потомков у узла, больше 500, начинаются тормоза с проставлением галочек у всех потомков. Я запрограммировал так, что при нажатии на узел родителя, если у него есть узлы дети, … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Чекбоксы в отдельном потоке
Delphi. Иерархические данные. DBTreeView своими руками. Динамическая подгрузка веточек
Идея динамической подгрузки веточек-узлов пришла ко мне, когда я стал добавлять по 500 узлов в узлы родители, и при загрузке дерева стала ощущаться задержка. Я так и представил разрастающиеся базы пользователей и эти долгие загрузки со всеми последствиями. Оно и … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Рекурсивное удаление поддерева
В связи с тем, что переделал алгоритм загрузки данных для дерева до динамического, пришлось переделать алгоритм удаления из базы. При динамической подгрузке в TreeView видны узлы лишь до уровня, открытого пользователем. Всё что глубже – просто не загружено. Поэтому как … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Рекурсивное удаление поддерева
Delphi. Иерархические данные. DBTreeView своими руками. Добавляем значки папок и файлов
Решил немного позаниматься украшательством – добавить значки папок и файлов, получилось вот что… Пробовал разными способами, но получилось вот так
Delphi. Иерархические данные. DBTreeView своими руками. Приведение CheckBoxes в нормальное состояние
Пока не нашел свойство DisplayRect у TTreeNode, не знал как быть с чекбоксами, а то поставить то я их поставил, а вот работали они не совсем адекватно. То есть при нажатии на текст, скажем – нажимались и чекбоксы, а мне нужно было … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Удаляем несколько узлов с помощью Checkboxes
В данной статье посмотрим на алгоритм удаления при помощи Checkboxes. Суть такая же, при удалении узла нужно удалить всех его детей. Но реализация немного другая, отличная от той, где мы удаляли через Selection. Алгоритм, прямо скажу, не быстрый, но рабочий. … Continue reading
Delphi. TreeView. Способы обхода дерева
Способов обхода дерева – огромное количество, я приведу здесь самые простые. Обход всего дерева от начала до конца
1 2 3 4 5 6 7 8 |
... Node:=TreeView.Items.GetFirstNode; repeat // DoSomething with Tree for Example // Node.Text:='Was here during travesing'; Node:=Node.GetNext; until not Assigned(Node) ; ... |
Обход в глубину узла 1
1 2 3 4 5 6 7 8 |
Procedure TMainForm.WalkParentAndAllChildren (Node:TTreeNode); var i:integer; begin memo1.Lines.Add(Node.Text); for i := 0 to Node.Count-1 do WalkParentAndAllChildren(Node[i]); // Recurisively goes all children end; |
Данная процедура обходит родителя и всех детей – рекурсивно. Вот ссылка на сайт, где взял … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. TreeView. Способы обхода дерева
Delphi. Иерархические данные. DBTreeView своими руками. Добавляем Checkboxes
Продолжаем серию DBTreeView своими руками. В данной статье добавим Checkboxes к элементам дерева при помощи свойства StateIndex. Добавим CheckBoxes и свяжем их статус с базой данных. Скажу сразу, что Checkboxes здесь это картинки 16*16 и можно организовать любые другие картинки, например … Continue reading
Posted in Delphi, Без рубрики, Деревья
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Добавляем Checkboxes
Delphi. Иерархические данные. DBTreeView своими руками. Удаление нескольких узлов
В данной статье посмотрим на удаление данных из дерева, поддерживающего связку с базой данных. Мы уже удаляли один узел, там нужно было удалить всех детей узла, в базе и в дереве, и только потом удалить сам узел. В данном примере … Continue reading
Delphi. Иерархические данные. DBTreeView своими руками. Переподчинение узлов
Данная статья развивает предыдущие 2 из цикла DBTreeView своими руками и показывает как можно переподчинить узлы. Статьи основаны на книге Д.Осипова Delphi и базы данных c моими небольшими изменениями. Как видно, переподчинение произошло и в базе данных.