Панель инструментов по умолчанию

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

ask-rus писал(а):Всё равно "осечка"...
Мне помогла такая манипуляция: поменял местами set_tcini с открытием панели и добавил установку set_tcini(Layout, ButtonBar,1)
Команда для TCFS2.ini стала у меня такой:

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

OpenBar=set_tcini(ButtonBar, Buttonbar,`%COMMANDER_PATH%\BAR\` #1 `.bar`) tem(`em_OpenBar %COMMANDER_PATH%\BAR\` #1 `.bar`) set_tcini(Layout, ButtonBar,1)
Вызов остался прежним, например

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

/ei OpenBar(`Main`)
Добавлено:
Можно в TCFS2.ini добавить и команду смены панели:

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

SwitchBar=if(tcini(ButtonBar, ButtonBar, `%COMMANDER_PATH%\BAR\` #1 `.bar`), run_item(OpenBar, #2), run_item(OpenBar, #1))
Вызов

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

/ei "SwitchBar(`Main`, `Ext`)"
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Flasher писал(а):В данном случае это неважно. Макрос тот же?
И секцию Layout посмотри, всё ли там в порядке, нет ли редиректа.
TCFS2.ini с TCFS2_2.2.0.460.zip - без правок.

:arrow: Запускаю TC, закрываю панель инструментов:
[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=/ei tb0
menu=Закрыть панель инструментов
жму переключение:
[em_SwitchBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z /ef "if(tcini(ButtonBar, ButtonBar, `%%COMMANDER_PATH%%\BAR\MAIN.bar`), tem(em_ExtBar), tem(em_MainBar))"
menu=Переключение между главной и расширенной панелями инструментов
чтобы панель появилась и закрыть панель инструментов снова уже не удаётся. Переключаюсь на другие панели, всё равно не закрыть, пока не перезапущу TC или не зайду в настройки, чтобы снять и в тот же момент установить флажок на "Панель инструментов".

Т.е.
[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=/ei tb0
menu=Закрыть панель инструментов
становится нерабочей.

Добавлено спустя 5 минут:

sa
Не хотелось бы добавлять в TCFS2.ini что-либо, лучше всего хранить в теле кнопки.

Добавлено спустя 14 минут:

Такая команда создаёт аж две "осечки" для em_SwitchBar:
[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z /ef "tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\NO.bar`) set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\NO.bar`)"
menu=Закрыть панель инструментов
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

ask-rus писал(а):Не хотелось бы добавлять в TCFS2.ini что-либо
Так правь в 4-х местах usercmd.ini или кнопки. Параметр для команды em_MainBar будет такой

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

%Z /ef "set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\MAIN.bar`) tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\MAIN.bar`) set_tcini(Layout, ButtonBar, 1)"
По аналогии параметры для em_ExtBar, em_UserBar.
Параметр для em_NoBar
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Спасибо, sa, "осечки" не стало.

Эти две кнопки ведут себя по разному:
[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=/ei tb0
menu=Закрыть панель инструментов
[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z /ef "set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\NO.bar`) tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\NO.bar`) set_tcini(Layout, ButtonBar, 0)"
menu=Закрыть панель инструментов
Первая кнопка:
- Открыта главная панель, закрываем, переключаемся - открывается расширенная;
- Открыта расширенная панель, закрываем, переключаемся - открывается главная.

Вторая кнопка:
- Открыта главная панель, закрываем, переключаемся - открывается главная;
- Открыта расширенная панель, закрываем, переключаемся - открывается главная.

Мне ближе второй вариант, т.к. напомню, что у меня расширенная панель инструментов - эта та же главная, но со вторым рядом кнопок. Логичней, когда из ничего сначала откроется один ряд, а при переключении - второй, нежели сразу два.

Добавлено спустя 6 минут:

Собственно, цель достигнута, благодарю всех за помощь!
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Забудь по NO.Bar.
Попробуй:

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

[em_SwitchBar] 
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe 
param=%Z/ef "if(tcini(Layout, ButtonBar, 0), tcm(2901), if(tcini(ButtonBar, ButtonBar, `%%COMMANDER_PATH%%\BAR\MAIN.bar`), tem(em_ExtBar), tem(em_MainBar)))"
menu=Включение текущей или переключение между главной и расширенной панелями инструментов
и не надо в 4-х местах ничего править.
Обращаю также внимание, что пробел после %Z не нужен. Убирай везде.
Последний раз редактировалось Flasher Ср дек 10, 2014 09:25, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

[em_OpenBar]
cmd=OPENBAR
param=%Z%A
menu=Открыть указанную панель инструментов

[em_MainBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z/ef "set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\MAIN.bar`) tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\MAIN.bar`) set_tcini(Layout, ButtonBar, 1)"
menu=Открыть главную панель инструментов

[em_ExtBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z/ef "set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\EXT.bar`) tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\EXT.bar`) set_tcini(Layout, ButtonBar, 1)"
menu=Открыть расширенную панель инструментов

[em_UserBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z/ef "set_tcini(ButtonBar, Buttonbar,`%%COMMANDER_PATH%%\BAR\User.bar`) tem(`em_OpenBar %%COMMANDER_PATH%%\BAR\User.bar`) set_tcini(Layout, ButtonBar, 1)"
menu=Открыть пользовательскую панель инструментов

[em_SwitchBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=%Z/ef "if(tcini(Layout, ButtonBar, 0), run_item(tb1), if(tcini(ButtonBar, ButtonBar, `%%COMMANDER_PATH%%\BAR\MAIN.bar`), tem(em_ExtBar), tem(em_MainBar)))"
menu=Включение текущей или переключение между главной и расширенной панелями инструментов

[em_NoBar]
cmd=%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
param=/ei tb0
menu=Закрыть панель инструментов
Всё ли верно?

Добавлено спустя 5 минут:

Вроде работает, какую закрыл - ту и открыл.
Последний раз редактировалось ask-rus Ср дек 10, 2014 08:37, всего редактировалось 1 раз.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Нет. Записи set_tcini(Layout, ButtonBar, 1) не нужны. Для команд вызова панелей юзай исходник.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

И вернулись к проблеме незакрываемости панели инструментов...

Добавлено спустя 7 минут:

С этим:
set_tcini(Layout, ButtonBar, 1)
всё в норме.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Объясняю. Если ты скрываешь панель вызовом NO.bar, то в [Layout], ButtonBar остаётся старое значение в отличии от действия cm_VisButtonbar, поэтому тебе достаточно один раз вызвать эту команду, и тогда всё будет работать как следует.

Добавлено спустя 3 минуты:

И да, зачем тебе вообще em_NoBar при наличии cm_VisButtonbar?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Flasher писал(а):Для команд вызова панелей юзай исходник.
В исходнике какая-то ошибка, которая после ряда переключений блокирует закрытие панели.

Беру свой код выше, убираю с вызова панелей set_tcini(Layout, ButtonBar, 1) и всё закрывается на ура.

Добавлено спустя 6 минут:
Flasher писал(а):Если ты скрываешь панель вызовом NO.bar
Закрываю с /ei tb0.

Добавлено спустя 5 минут:
Flasher писал(а):И да, зачем тебе вообще em_NoBar при наличии cm_VisButtonbar?
Право слово, сейчас погляжу.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Исходник тут ни при чём.

Я понял проблему вызова /ei tb0.
hasButtonBar=tcini(Layout, ButtonBar, 1, 1)
Надо спросить у MVV, зачем он поставил <error_value>. Получается, что в случае, если ключ не равен 1, он всегда вернёт 1, для if/eval - это фактическое True. Из-за этого глюк. Надо убрать красное.
Последний раз редактировалось Flasher Ср дек 10, 2014 09:06, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Понятно. Во всяком случае я беру в обиход cm_VisButtonbar. На этом, кажется, всё?
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

ask-rus писал(а):Собственно, цель достигнута, благодарю всех за помощь!
Пожалуйста!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ask-rus писал(а):Во всяком случае я беру в обиход cm_VisButtonbar
Правильно, и тогда про проблемы неверной записи можно забыть, как и про совет sa.
ask-rus писал(а):На этом, кажется, всё?
Вроде да, но мне всё-таки мнение MVV хотелось бы увидеть об <error_value>.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher писал(а):об <error_value>
Из справки к TCFS2:
error_value, если ключ не найден
Ответить