[util] TC Menu: вопросы, ответы, предложения
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
В параметрах TCMenu надо собрать все переменные ТС, используемые в кнопках тулбара.
В твоем примере во 2-й кнопке присутствуют переменные %p%n, значит в параметрах TCMenu должно быть "-p %p -n %n".
5-я и 22-я кнопка не содержат переменных ТС и, поэтому, никак не влияют на параметры TCMenu.
Если же , допустим, в шестой кнопке используется переменная %Т, то ее надо добавить в параметры TCMenu - "-p %p -n %n -Т %Т". И т.д.
В твоем примере во 2-й кнопке присутствуют переменные %p%n, значит в параметрах TCMenu должно быть "-p %p -n %n".
5-я и 22-я кнопка не содержат переменных ТС и, поэтому, никак не влияют на параметры TCMenu.
Если же , допустим, в шестой кнопке используется переменная %Т, то ее надо добавить в параметры TCMenu - "-p %p -n %n -Т %Т". И т.д.
Спасибо, стало чуть более понятно, но все равно не до конца.
Как TCMenu определяет, к какой именно кнопке вложенного тулбара относятся переменные, указанные в строке параметров кнопки? Если бы синтаксис включал номер кнопки, то было бы ясно (например, "2:p %p -n %n"), но ничего такого нет. А как же тогда?
Ты не мог бы привести в качестве примера полную строку для нашего примера (то есть, тулбар из 30 кнопок, из которых переменные TC есть у 2-й и 6-й, а парамеры у 5-й и 22-й кнопок) в том виде, в котором она должна быть, чтобы ее можно было бы просто тупо скопировать и вставить в строку параметров кнопки. Потом я по этому образцу сделю остальное.
Как TCMenu определяет, к какой именно кнопке вложенного тулбара относятся переменные, указанные в строке параметров кнопки? Если бы синтаксис включал номер кнопки, то было бы ясно (например, "2:p %p -n %n"), но ничего такого нет. А как же тогда?
Ты не мог бы привести в качестве примера полную строку для нашего примера (то есть, тулбар из 30 кнопок, из которых переменные TC есть у 2-й и 6-й, а парамеры у 5-й и 22-й кнопок) в том виде, в котором она должна быть, чтобы ее можно было бы просто тупо скопировать и вставить в строку параметров кнопки. Потом я по этому образцу сделю остальное.
Никак не определяет, это не требуется. %p - он и в Африке %p. Где бы он ни попался (хоть во всех кнопках подряд) все равно он будет заменен на одно и то же, а значит, в каких именно кнопках он стоит совершенно неважно.Leopoldus писал(а):Как TCMenu определяет, к какой именно кнопке вложенного тулбара относятся переменные,
Так я ее и привел, практически полностью. Осталось только добавить вначале имя самого файла тулбара.Leopoldus писал(а):Ты не мог бы привести в качестве примера полную строку для нашего примера
Код: Выделить всё
c:\totalcmd\mybar.bar -p %p -n %n -Т %ТЗЫ. И еще раз напоминаю - если некоторые кнопки не имеют переменных ТС (в твоем примере - 5-я и 22-я), то они прозрачны для TCMenu и абсолютно никаких телодвижений от юзера не требуют.
Почти все настроил, но не получается с кнопкой внешнего Lister-а. На оригинальном тулбаре в строке параметров этой кнопки прописано:
?%N
(открытие файла под курсором с запросом на подтверждение, все работает).
Обе переменных (? и %N) уже прописаны в параметрах кнопки TC Menu и работают для других кнопок. Но кнопка Lister на тулбар из TCMenu не работает: имя файла под курсором не вставляется автоматически в поле, предназначенное для имени открываемого файла, хотя чуть выше она в том же диалоге присутствует в качестве подзаголовка.
В чем может быть дело?
З.Ы.
Если вообще не имеет никакого значения порядок и пр., в котором идут переменные в строке параметров кнопки TC Menu, то не проще ли было бы сразу задать в коде TC Menu все возможные переменные TC, благо их не так уж много? Тогда пользователю оставалось бы ввести только имя тулбара...
?%N
(открытие файла под курсором с запросом на подтверждение, все работает).
Обе переменных (? и %N) уже прописаны в параметрах кнопки TC Menu и работают для других кнопок. Но кнопка Lister на тулбар из TCMenu не работает: имя файла под курсором не вставляется автоматически в поле, предназначенное для имени открываемого файла, хотя чуть выше она в том же диалоге присутствует в качестве подзаголовка.
В чем может быть дело?
З.Ы.
Если вообще не имеет никакого значения порядок и пр., в котором идут переменные в строке параметров кнопки TC Menu, то не проще ли было бы сразу задать в коде TC Menu все возможные переменные TC, благо их не так уж много? Тогда пользователю оставалось бы ввести только имя тулбара...
Вопросительный знак - это не переменная! В параметры TCMenu выносятся только переменные - буквы со знаком процента.Leopoldus писал(а):Обе переменных (? и %N) уже прописаны в параметрах кнопки TC Menu
Кроме того, после вопросительного знака должен быть пробел.
Не только не проще, а попросту невозможно. Откуда TCMenu может знать что именно в данный момент соответствует параметру %N, например???Leopoldus писал(а):не проще ли было бы сразу задать в коде TC Menu все возможные переменные
Вообще-то, в настройках этой кнопки на исходном тулбаре пробела не было - и она работала. Добавил пробел, теперь заработала и кнопка на вложенном тулбаре TC Menu.Кроме того, после вопросительного знака должен быть пробел.
Однако в результате всех манипуляций перестали работать две другие кнопки на вложенном тулбаре TC Menu при открытии файлов с пробелами в именах.
Вот как выглядят рабочие параметры этих кнопок на исходном тулбаре:
Код: Выделить всё
Command: C:\Program Files\Bred2\Bred2r.exe
Parameters: ? %P%N
Код: Выделить всё
Command: C:\Program Files\Bred3\bred3_2k.exe
Parameters: %P%NА вот строка параметров в кнопке TC Menu:
Код: Выделить всё
"C:\Program Files\TotalCmd_02\nested bar creator\bars\Bar_01.bar" -$ -P %P -N %N -p %p -n %n -t %t -m %m -L %L -F %F
Это не ошибка, дело в том, что ТС имеет специальную обработку для некоторых параметров, когда они используются парами (например %P%N). А при запуске через TCMenu эта пара оказывается разорванной. Но почему ты используешь два формата - и %N %P и %n %p? Если тебя устраивают короткие имена файлов, то используй только %n %p. Тогда проблем быть не должно.
Если же тебе обязательно нужно использовать длинные имена файлов, то есть два пути.
1. Определить свою переменную, скажем %А. Тогда в кнопке будет, а в параметрах TCMenu надо добавить
2. Создать команду em_xxx и использовать ее.

Если же тебе обязательно нужно использовать длинные имена файлов, то есть два пути.
1. Определить свою переменную, скажем %А. Тогда в кнопке будет
Код: Выделить всё
Command: C:\Program Files\Bred3\bred3_2k.exe
Parameters: %AКод: Выделить всё
-A %P%NДа, но если ты читал ридми, то мог обратить внимание на то, что TCMenu обрабатывает "?" не так как ТС.Вообще-то, в настройках этой кнопки на исходном тулбаре пробела не было
При запросе на открытие файла хочется видеть, что именно открываешь, иначе нет смысла и вводить запрос. Для этого нужны длинные имена. А некоторые другие кнопки требуют, наоборот, коротких. Поэтому в параметрах TC Menu имеются обе пары.Но почему ты используешь два формата - и %N %P и %n %p? Если тебя устраивают короткие имена файлов, то используй только %n %p
Выглядит просто как магия1. Определить свою переменную, скажем %А. Тогда в кнопке будет
Но у этого варианта имеется недостаток: требуется корежить настройки кнопок исходного тулбара, в результате они, естественно, перестают работать. А иногда необходимо использовать именно оригинальный тулбар.
Так что, наверное, остается только второй вариант
Так что пойду разбираться с em_xxx.2. Создать команду em_xxx и использовать ее.
Спасибо за помощь! Кажется, я стал намного умнее...
- kalikanzaros
- Сообщения: 90
- Зарегистрирован: Вт июл 03, 2007 19:09
VadiMGP
у меня получается сделать только показ вместо текущего меню...
а можно пример файла в котором работает меню 2го уровня?- Добавлена поддержка вложенных .bar файлов. Если выбранный пункт меню содержит только имя .bar файла, то этот .bar файл будет показан вместо текущего меню. Если в параметре также задано слово "menu", то этот .bar файл будет показан как меню второго уровня.
у меня получается сделать только показ вместо текущего меню...
Ну вот, например файл ex.bar
и, соответственно, кнопка
Код: Выделить всё
[Buttonbar]
ButtonCount=2
button1=%COMMANDER_PATH%\TOTALCMD.exe,1
cmd1=%COMMANDER_PATH%\DEFAULT.BAR
param1=
path1=
menu1=DEFAULT1
button2=%COMMANDER_PATH%\TOTALCMD.exe,1
cmd2=%COMMANDER_PATH%\DEFAULT.BAR
param2=menu
path2=
menu2=DEFAULT2Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCMenu\TCMenu.exe
%%COMMANDER_PATH%%\ex.bar
%COMMANDER_PATH%\wciconex.dll,35
example
-1
Приветствую!
Извиняюсь за возможное повторение, я первый раз на этом форуме.
Прежде всего хочу выразить автору данного плагина огромный респект! Весьма полезная утилита.
Пользуюсь TCMenu очень давно. Правда, кроме параметра "-$" других параметров никогда не использовал.
Понравился данный плагин (v.1.9) тем, что его можно было использовать как отдельную утилиту даже без Тотала. В качестве лаунчера программ. Причем, основным плюсом программы я считал тот факт, что программа постоянно не висит в памяти, а после отработки полностью выгружается. Можно вынести ярлык на рабочий стол и в качестве параметров указать путь к Вашему .bar файлу. Версия 1.9 прекрасно работает. Также можно повесить такой ярлык на панель быстрого запуска и Вы получите полноценное многоуровневое меню. Кроме того, я умудрился запускать такое меню по горячей клавише с помощью утилиты nncron.
Вчера, случайно попав на данный форум, узнал, что плагин развивается (еще раз респект автору) и уже существуют новые версии. Скачал и "прикрутил" к Тоталу новую версию. Но вот отдельно от Коммандера к сожалению новую версию пока не удалось приручить. Если запускать ярлыком (как описано выше), то меню запускается, но при попытке вызвать какую-нибудь программу TCMenu вылетает с ошибкой.
Буду весьма признателен если автор подскажет решение проблемы.
Извиняюсь за возможное повторение, я первый раз на этом форуме.
Прежде всего хочу выразить автору данного плагина огромный респект! Весьма полезная утилита.
Пользуюсь TCMenu очень давно. Правда, кроме параметра "-$" других параметров никогда не использовал.
Понравился данный плагин (v.1.9) тем, что его можно было использовать как отдельную утилиту даже без Тотала. В качестве лаунчера программ. Причем, основным плюсом программы я считал тот факт, что программа постоянно не висит в памяти, а после отработки полностью выгружается. Можно вынести ярлык на рабочий стол и в качестве параметров указать путь к Вашему .bar файлу. Версия 1.9 прекрасно работает. Также можно повесить такой ярлык на панель быстрого запуска и Вы получите полноценное многоуровневое меню. Кроме того, я умудрился запускать такое меню по горячей клавише с помощью утилиты nncron.
Вчера, случайно попав на данный форум, узнал, что плагин развивается (еще раз респект автору) и уже существуют новые версии. Скачал и "прикрутил" к Тоталу новую версию. Но вот отдельно от Коммандера к сожалению новую версию пока не удалось приручить. Если запускать ярлыком (как описано выше), то меню запускается, но при попытке вызвать какую-нибудь программу TCMenu вылетает с ошибкой.
Буду весьма признателен если автор подскажет решение проблемы.
AlexNCH
За добрые слова спасибо.
Что касается вылетания, то нужно больше информации. Выложи сюда свой bar файл, и приведи текст сообщения об ошибке.
ЗЫ.
За добрые слова спасибо.
Что касается вылетания, то нужно больше информации. Выложи сюда свой bar файл, и приведи текст сообщения об ошибке.
ЗЫ.
Если ты просто скопировал пример из моего предыдущего поста, то он не будет работать без ТС, потому что там используется переменная окружения %COMMANDER_PATH%. Нужно либо определить ее вручную, либо прописать пути явно.AlexNCH писал(а):Если запускать ярлыком (как описано выше)
Вот:VadiMGP писал(а):AlexNCH
Выложи сюда свой bar файл
[Buttonbar]
ButtonCount=2
button1=E:\Soft\ImgBurn\ImgBurn.exe
cmd1=E:\Soft\ImgBurn\ImgBurn.exe
path1=E:\Soft\ImgBurn\
menu1=ImgBurn
button2=C:\Program Files\Nero\Nero8\Nero Burning Rom\nero.exe,0
cmd2=""C:\Program Files\Nero\Nero8\Nero Burning Rom\nero.exe""
path2=C:\Program Files\Nero\Nero8\Nero Burning Rom\
menu2=nero
[AlternativeCache]
CacheIndex1=0
CacheIndex2=1
Не копировалVadiMGP писал(а):Если ты просто скопировал пример из моего предыдущего поста
Вот скрин ошибки:
