Вверх ↑
Этот топик читают: Гость
Ответов: 356
Рейтинг: 31
#1: 2010-02-18 16:37:21 ЛС | профиль | цитата
После удаления узла его IDIndex не освождается - так и задумано
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2010-02-18 21:02:39 ЛС | профиль | цитата
откуда не освобождается?
карма: 27
0
Ответов: 356
Рейтинг: 31
#3: 2010-02-18 21:48:22 ЛС | профиль | цитата
Создаём узел
IDIndex = [ 1 ] CaptionIndex = [ "New" ]
удаляем его и создаём новый
IDIndex = [ 2 ] CaptionIndex = [ "New" ]
и т.д. - IDIndex удалённых узлов больше не используется.

code_16976.txt
карма: 0

0
файлы: 1code_16976.txt [5.6KB] [210]
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-02-18 22:41:26 ЛС | профиль | цитата
да, все верно. Поведение эквивалентно последовательностям(sequence) в терминах баз данных и это дает 100% гарантию от повторения идентификаторов вводимых записей
карма: 27
1
Голосовали:olDjeka
Ответов: 356
Рейтинг: 31
#5: 2010-02-24 22:38:27 ЛС | профиль | цитата
На случай хотелось бы знать, при UseHashMap = False используется TreeMap

Что нужно (или наоборот, не следует) делать при использовании hash-карты, чтобы добавляемые в дерево узлы шли в строго отсортированном по их ID порядке и к чему приведёт не соблюдение этого условия ?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2010-02-25 00:24:36 ЛС | профиль | цитата
при UseHashMap = False используется двоичный поиск по отсортированному массиву.
нужно всего лишь соблюдать простое правило: ID добавляемого элемента должно быть больше любого уже добавленного. В случае со строками ID должно быть последним по алфавиту.
не соблюдение условий сортировки приведет к тому, что при использовании метода поиска картежа в дереве по его ID алгоритм может пропустить часть узлов.

PS: если узлов в дереве не так много(около сотни) и не требуется их слишком часто изменять, то использование HashMap не даст никакого повышения производительности.
карма: 27
1
Голосовали:olDjeka
Ответов: 2271
Рейтинг: 677
#7: 2010-03-28 01:58:20 ЛС | профиль | цитата
Можно поподробней объяснить для чего свойства DataEmpty: Numeric, String. Хотел вписать (-1), не получилось. Пример: code_17562.txt
карма: 11

0
файлы: 1code_17562.txt [1.5KB] [304]
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2010-03-28 12:49:42 ЛС | профиль | цитата
code_17564.txt
карма: 27
1
файлы: 1code_17564.txt [1.5KB] [280]
Голосовали:sla8a
Ответов: 758
Рейтинг: 112
#9: 2010-03-30 09:55:33 ЛС | профиль | цитата
Не хочу создавать новой темы, поэтому спрошу тут
Возможно ли увеличить скорость загрузки TreeViewTrain из StrList

Скорость загрузки из файла несоизмеримо выше
карма: 1

0
файлы: 1project6.sha [43.5KB] [237]
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2010-03-30 10:45:14 ЛС | профиль | цитата
возможно сделать метод, который будет загружать дерево из текстовой строки такого же формата, которая требуется для метода doLoad. И сохранение.
карма: 27
0
Ответов: 758
Рейтинг: 112
#11: 2010-03-30 12:42:16 ЛС | профиль | цитата
Dilma писал(а):
возможно сделать метод, который будет загружать дерево из текстовой строки такого же формата, которая требуется для метода doLoad. И сохранение.

Это для меня фигура висшего пилотажа, не дорос пока

Исходная структура дерева была такого вида
Категория1 Под1_1 Под2_1 1
Категория1 Под1_1 Под2_1 2
Категория1 Под1_1 Под2_1 3
Категория1 Под1_1 Под2_2 4
Категория1 Под1_1 Под2_2 5
Категория1 Под1_2 Под2_3 6
Категория1 Под1_2 Под2_3 7
Категория1 Под1_2 Под2_3 8
Категория1 Под1_2 Под2_4 9
Категория1 Под1_2 Под2_4 10
Категория2 Под1_3 Под2_5 11
Категория2 Под1_3 Под2_5 12
Категория2 Под1_3 Под2_5 13
Категория2 Под1_3 Под2_6 14
Категория2 Под1_3 Под2_6 15
Категория2 Под1_3 Под2_6 16
Категория2 Под1_4 Под2_7 17
Категория2 Под1_4 Под2_7 18
Категория3 Под1_4 Под2_7 19
Категория3 Под1_4 Под2_8 20
Категория3 Под1_4 Под2_8 21
Категория3 Под1_5 Под2_9 22
Категория3 Под1_5 Под2_10 23


И потом я конвертил эту структуру в строчную, для добавления в дерево
Может проще сделать обратный конвертор TVT_ItemPath

карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2010-03-30 12:49:46 ЛС | профиль | цитата
miver, быстродействие метода doLoad в свавнении с ручным doAdd достигается благодаря тому, что не нужно искать родителя для каждого нового узла. Никакими уловками в схеме это не компенсируешь
карма: 27
0
Ответов: 2271
Рейтинг: 677
#13: 2010-04-06 21:43:05 ЛС | профиль | цитата
1. В TreeViewTrain есть onExpand, а onCollaps?
2. И почему onExpand выдает значение только после первого doExpend?
Пример: code_17719.txt
карма: 11

0
файлы: 1code_17719.txt [1.2KB] [302]
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2010-04-07 00:58:04 ЛС | профиль | цитата
2. onExpand вызывается после использования doExpand только в том случае, если ветка до того ни разу не была открыта. Это поведение зависит не от элемента пакета
карма: 27
0
Ответов: 2271
Рейтинг: 677
#15: 2010-04-20 11:46:44 ЛС | профиль | цитата
Хочется знать значения родительских узлов (раскрыт/свернут)? Можно это реализовать? Или иметь возможность отслеживать когда узел был раскрыт или свернут.
карма: 11

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)