Друзья пару месяцев назад в качестве эксперимента, собирал схему для показа двухуровневого дерева с использованием элементов TreeViewTrain+IconsManager +TVT_AddNode для показа древовидной структуры. На днях решил реанимировать программу но на этот раз попробовал загрузить из текстового файла дерево элементов размеров в 12 тыс. строк.
Схема начала зависать, при количестве элементов до 1000 древо рисуется нормально.
Понимаю что при таком скудном описании вы вряд ли сможете мне помочь советом. Попробую вырезать рабочий кусок схемы для демонстрации.
а пока может кто дать какие либо совету по поводу общих принципов построение древовидной структуры когда количество элементов порядка 10 тыс. элементов.
------------ Дoбавленo в 15.18:
Извините не дождался и нажал два раза отправить
------------ Дoбавленo в 15.42:
Вот пример схемы первая загружает 1200 элементов вторая около сотни. В общем до 1000 работает а дальше все завысает
Этот топик читают: Гость
|
Ответов: 542
Рейтинг: 12
|
|||
| карма: 0 |
| ||
| файлы: 2 | drevo1200.sha [113.1KB] [110], drevo100.rar [23KB] [78] |
|
Ответов: 2125
Рейтинг: 159
|
|||
|
Общий принцип такой: не загружать всё сразу, а по мере открытия дерева.
Например, можно сначала загрузить два уровня, а при открытии соответствующего узла догружать третий уровень только для него, и т.п. |
|||
| карма: 1 |
| ||
| Голосовали: | afandi |
|
Ответов: 542
Рейтинг: 12
|
|||
|
Очень дельный совет, спасибо!
у меня была мысль сделать два окна один для первого уровня дерева а второй для последующих уровней. для первого уровня на котором расположен фокус во втором открывать вложенный список. Интересно какой вариант проще в реализации? ------------ Дoбавленo в 16.13: А какие есть способы замера времени работы того или иного куска схемы? хочу выполнит замер каждого логического блока и работать над его оптимизацией |
|||
| карма: 0 |
|
|
Ответов: 16884
Рейтинг: 1239
|
|||
|
afandi писал(а): А какие есть способы замера времени работы того или иного куска схемы? afandi, до микросекунд. |
|||
| карма: 25 |
| ||
| Голосовали: | afandi |
|
Ответов: 542
Рейтинг: 12
|
|||
|
Микросекунд это значит нужно делить на 1000 что бы получить в секундах?
------------ Дoбавленo в 17.32: В случае преобразования 12 тыс. строк в многомерный поток затрачивается 18 секунд у меня. строки разделены 1013 а преобразовываются в поток используя MT_String Delimeter="1013" возможен ли другой подход к этой задаче |
|||
| карма: 0 |
|
|
Разработчик
Ответов: 26324
Рейтинг: 2147
|
|||
|
afandi писал(а): Микросекунд это значит нужно делить на 1000Нет, на 1 000 000, на 1000 это -- миллисекунды |
|||
| карма: 22 |
|
|
Ответов: 542
Рейтинг: 12
|
|||
|
А разве компонент StrPart не умеет разделять строки по разделителю 1013 ?
|
|||
| карма: 0 |
|
|
Ответов: 1161
Рейтинг: 160
|
|||
|
только по одному из них
|
|||
| карма: 0 |
|
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
|
при таком количестве наименований единственное спасение делать так
tsdima писал(а): не загружать всё сразу, а по мере открытия дерева. |
|||
| карма: 26 |
|
9



Поиск
Друзья
Администрация