-
MY PROJECTS
-
Recent Posts
- SpringBoot. Exception Management
- Java.Hibernate.JoinTableAnnotation
- SpringBoot.Making our first starter and autoconfiguration
- Spring. Creating main annotation to start business logic
- Spring.Reading from properties file
- Spring.How to define spring version inside springBoot ?
- SpringBoot App inside Docker
- Kafka.FirstExperience
- Docker.MySql and Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
- Gradle.Tips
- Spring.AppConfig
- Leetcode.Best-time-to-buy-and-sell-stock
- LeetCode.ClimbStairs.Fibbonacci
- Leetcode.Roman-to-integer
- LeetCode.Palindrome-number
- Java.DesignPatterns.Lightweight
- Java.DesignPatterns.Proxy
- Java.DesignPatterns.Facade
- Java.DesignPatterns.Composite
- Java.DesignPatterns.Bridge
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)
- Регулярные выражения
- Тестирование приложений
Monthly Archives: April 2016
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 своими руками. Запоминание свернутости
Потихоньку подбираюсь к динамической загрузке веточек, по нажатию на узел, если в нём есть дети, он будет раскрываться. Но это в следующих статьях, сейчас простое запоминание свёрнутости узлов через базу. Для этого я добавил поле IsExpanded Поле Integer, по правильному … Continue reading
Posted in Delphi
Comments Off on Delphi. Иерархические данные. DBTreeView своими руками. Запоминание свернутости
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