Page 3 of 19

Реализовать дерево директорий панельным модулем на Луа

Posted: Sun 08 Mar, 2020 22:31
by buniak_a_h
citRiks wrote: Sun 08 Mar, 2020 21:37
buniak_a_h wrote: Sat 07 Mar, 2020 19:41 Я начинал делать дерево в виде панельного модуля. Вот это мне показалось наиболее удобным. Но… Отвлекли на работе.
ну положите куда-нибудь на видное место если там есть хоть что-то полезное, может кто-нибудь продолжит
Спасибо citRiks-у за наводку на tree.com - давно забытая утилитка. Получился довольно небольшой и вполне пригодный модуль. Позволяет открывать-закрывать узлы дерева, задавать глубину, на которую первоначально открываются узлы; просматривать в пассивной панели текущую папку и переходить в панели дерева на выбранную папку.



Чего может не хватать:
  • обновления дерева (по таймеру, например);
  • вывода характеристик (суммарный размер поддерева, самого нового файла, количество файлов).
  • Что ещё - не знаю.
Если кому-нить это интересно, перечисленные недоделки я по возможности доделаю. Также принимаются предложения, чего может ещё не хватать для нормальной работы. Но так-то вроде вполне удобненько получилось … :-)
Опять же если будут добровольцы - локализацию и перевод хелпа были бы полезны. Если скрипт кому-нить покажется полезным …

Версия 2.6.6.
  1. Исправлен «снос» имени текущей папки в командную строку: теперь оно заменяет отмеченную часть командной строки или (если ничего не отмечено) вставляется в текущую позицию строки.
  2. Исправлена мелкая неточность: вопрос о пересоздании кэша задаётся только в том случае, если задан период актуализации кэша
TreePanel_2_6_6.7z
(31.08 KiB) Downloaded 144 times


1)Корневой каталог - каталог, который вместе с вложенными показан на дереве.

Реализовать дерево директорий панельным модулем на Луа

Posted: Fri 13 Mar, 2020 14:57
by citRiks

Latest post of the previous page:

buniak_a_h wrote: Fri 13 Mar, 2020 14:40 В предлагаемом bat-нике во временной папке создается зеркальная структура папок и далее всё делается с ней.
ну пустые папки в ТЕМПе - это приблизительно ноль ресурсов компа, а потом они стираются..
buniak_a_h wrote: Fri 13 Mar, 2020 14:40 Можно. Есть arclite, в него по моей просьбе добавлен функционал для удобства использования в макросах. Судя по скорости реакции автора, он не против обоснованных пожеланий.
не очень понимаю как это делать через arclite, но если вы понимаете и реализуете, то буду счастлив и этим :)

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 12:09
by Novichok 13
Всем привет! Поддерживаю идею создания этой фичи. Я тоже считаю что очень стоит сделать дерево для архивов,
и временные пустые директории не выглядят сверх-нагрузкой. Всем спасибо !

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:24
by buniak_a_h
У меня возник вопрос (проблема выбора):
1. Если в FileName пихать полный путь, то при переходах по папкам (узлам дерева) меняется текущая папка; т.е. запуск внешних команд происходит из той папки. НО! Не работает QuickSearch.
2 Если в FileName пихать только имя папки, то - наоборот - работает поиск по панели, зато не выставляется текущий каталог.
Разрешить это противоречие я не могу; надо выбирать. Если есть заинтересованные - что посоветуете?

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:38
by HaRT
buniak_a_h wrote: Sat 14 Mar, 2020 15:24 проблема выбора
А что в том и другом случае будет с фильтром панели?

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:43
by buniak_a_h
HaRT wrote: Sat 14 Mar, 2020 15:38
buniak_a_h wrote: Sat 14 Mar, 2020 15:24 проблема выбора
А что в том и другом случае будет с фильтром панели?
1. Это не новичок, это я писал :-)
2. Это намёк, что для панели дерева надо установить флаг OPIF_DISABLEFILTER ? Логично, спасибо. Действительно, фильтрация полностью поломает древовидную структуру. Для сокрытия внутренностей есть другой способ.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:47
by HaRT
buniak_a_h wrote: Sat 14 Mar, 2020 15:43 Это не новичок, это я писал
Это не я, это форум глючит с мобильника, известная проблема, потом с компа исправлю (а вы у себя, надеюсь, можете исправить уже сейчас).
18:00 MSK Я исправил и там, и там.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:53
by HaRT
buniak_a_h wrote: Sat 14 Mar, 2020 15:43 фильтрация полностью поломает древовидную структуру
Зато быстрым фильтром отлично заменяется быстрый поиск. Поэтому если фильтр работает, пусть и с нарушением дерева, то я за то, чтобы оставить фильтр и текущую директорию, пожертвовав быстрым поиском.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 15:59
by buniak_a_h
HaRT wrote: Sat 14 Mar, 2020 15:53 быстрым фильтром отлично заменяется быстрый поиск
Я чего-то не знаю про ФАР … Что такое "быстрый фильтр"?

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 16:11
by HaRT
buniak_a_h wrote: Sat 14 Mar, 2020 15:59 Что такое "быстрый фильтр"?
Я имел в виду скрипты «Автофильтр» или «Фильтр панели».

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 16:24
by buniak_a_h
HaRT, понятно.
Не пробовал. Я какой-то из них ставил, мне не понравилось (по-моему, просто непривычными хоткеями).
--
Неприятно, что быстрый поиск по образцу вида *a тоже не работает; почему - непонятно мне. Если знаете, в чём дело - напишите (после публикации версии 1.2.1 - там будет полный путь). Если нет - я разбираться, наверно, не буду. Легче сваять свой быстрый поиск …

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 23:20
by buniak_a_h
Выпустил версию 1.2.1.
Основное внутреннее отличие: в поле FileName теперь записан полный путь к соответствующему каталогу.
Внешнее отличие: управление стрелками, как принято в деревьях; переход на каталог выше; строка подсказки функциональных клавиш. Дописан хелп.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 23:46
by zg
если нет анси плагинов, текущая папка процесса всегда будет %FARHOME%, соответственно дерево — всегда папка фара.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 23:54
by buniak_a_h
Возможно, я чего-то не понимаю. Но … Просто тупо сделал dpr из одной строчки:
  1. MessageBox(0, PChar(GetCurrentDir()), '', MB_OK);
и в последней версии получаю именно папку, соответствующую узлу дерева, а не %FarHome%. ЧТД.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sat 14 Mar, 2020 23:58
by zg
buniak_a_h wrote: Sat 14 Mar, 2020 23:54Возможно, я чего-то не понимаю.
ваш макрос запускается как внешний процесс фаром?

Реализовать дерево директорий панельным модулем на Луа

Posted: Sun 15 Mar, 2020 00:09
by buniak_a_h
Какой макрос?
dpr - это файл программы на структурном паскале (на Delphi). Я сделал маленький тестик в одну строчку. Получил exe-шник. Именно его я запускаю из командной строки во время работы панельного модуля. И он отрабатывает правильно (т.е. в соответствии с ожиданием): выводит имя папки, которой соответствует текущий узел дерева.
Я не силён в формулировках; Вы мне уже писали, что переназначить текущий каталог системы невозможно. Но (а) в виндах уже нет такого понятия, как текущий каталог, есть стартовый каталог процесса и (б) я именно имел в виду "запуск внешнего процесса в контексте папки" (по-моему, я именно так и сформулировал). И этот тест показывает, что поведение именно то, что требуется. Так что всё же скорее не я чего-то не понимаю, а Вы.

Реализовать дерево директорий панельным модулем на Луа

Posted: Sun 15 Mar, 2020 00:46
by buniak_a_h
HaRT wrote: Sat 14 Mar, 2020 16:11
buniak_a_h wrote: Sat 14 Mar, 2020 15:59 Что такое "быстрый фильтр"?
Я имел в виду скрипты «Автофильтр» или «Фильтр панели».
У скрипта PanelAutoFilter мне не удалось вызвать фильтр ни для обычной панели, ни для дерева. Уж очень экзотические там хоткеи.Конфликтуют даже с PuntoSwitcher-ом!
Фильтр PanelFilter, наверно, можно сделать. Проблнма у меня в том, что при его вызове (у меня - CtrlP)вызывается диалог установки фильтра, а тогда в нём нет смысла. Но фильтрацию узлов дерева с учётом обычного фильтра я, наверно, сделаю (пока особых проблем не вижу).