Страница 3 из 3

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 13:04
Larion
У меня есть файл который хорошо отображается в SingleFileTree как переделать этот файл для browse

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 14:52
kreator
Larion писал(а): 06 Февраль 2020, 13:04 У меня есть файл который хорошо отображается в SingleFileTree как переделать этот файл для browse
А зачем? Автоматически броуз не сможет правильно отобразить дерево. Нужна предварительная подготовка. Либо использовать скульную вьюху. Либо собирать очередь вручную по алгоритму SingleFileTree, и использовать, видимо, IMDD для полноценного броуза. И, главное, зачем? Что не так с SingleFileTree?

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 15:01
Larion
SingleFileTree полностью устраивает но не могу организовать поиск чтобы найденная строка открывалась.

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 15:39
kreator
Я делаю так:

Код: Выделить всё

setcursor(CURSOR:Wait)
if ~LOC:TreeExpandAll
  do TSF3:ExpandAll
  LOC:TreeExpandAll = 1
end  
i# = TSF3:CurrentChoice
loop
  i# += 1
  get(Queue:SingleFileTree,i#)
  if errorcode()=30                     ! Конец очереди, начинаем с первой записи
    i# = 0
    cycle
  end
  if i#=TSF3:CurrentChoice              ! Прошли круг и ничего не нашли
    break
  end
  if instring(clip(upper(LOC:SearchString)),upper(Queue:SingleFileTree.TSF3:Display),1,1)
    break
  end  
end  
setcursor()
if i#<>TSF3:CurrentChoice
  select(?FileTree,i#)
  post(EVENT:NewSelection,?FileTree)
else  
  select(?FileTree,i#)
end
Смысл простой. Есть контрол строки поиска. Пользователь набирает там подстроку, нажимает кнопку найти или Enter. Поскольку этот шаблон не держит всё в памяти, надо загрузить всё дерево (рутина TSFх:ExpandAll). Поскольку это занимает время, хорошо бы помнить этот момент. Дальше должно быть понятно.

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 16:12
Larion
Спасибо выручили. В моём случае найденных строк может быть много я заряжаю Queue.
Из Queue я встану SingleFileTree с Вашей подсказкой.

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 16:37
kreator
Larion писал(а): 06 Февраль 2020, 16:12 Спасибо выручили. В моём случае найденных строк может быть много я заряжаю Queue.
Из Queue я встану SingleFileTree с Вашей подсказкой.
Явно переводчик нужен. :mrgreen:
У меня в деревьях много повторяющихся строк. Поэтому смысл поиска такой. Раскрыть полностью дерево и передвигаться по найденным подстрокам. Пользователь для этого всё время нажимает кнопку "Поиск". Есть задачка (пока на обсуждении) организовать фильтр по дереву. Отображать только ветки, имеющие подстроку поиска. На первый взгляд сложная задача для данного шаблона.

Дерево по одному файлу в станд. browse

Добавлено: 06 Февраль 2020, 17:39
Larion
Есть задачка (пока на обсуждении) организовать фильтр по дереву. Отображать только ветки, имеющие подстроку поиска. На первый взгляд сложная задача для данного шаблона.
Да фильтр это было замечательно. Можно рассмотреть вариант раскрыть несколько веток полностью и искать в них.
Но тут надо решить проблему выборочного полного открытия веток.