Страница 6 из 9

Добавлено: Вс дек 07, 2014 21:36
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`)"

Добавлено: Ср дек 10, 2014 05:45
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=Закрыть панель инструментов

Добавлено: Ср дек 10, 2014 07:16
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

Добавлено: Ср дек 10, 2014 08:02
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 минут:

Собственно, цель достигнута, благодарю всех за помощь!

Добавлено: Ср дек 10, 2014 08:14
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 не нужен. Убирай везде.

Добавлено: Ср дек 10, 2014 08:29
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 минут:

Вроде работает, какую закрыл - ту и открыл.

Добавлено: Ср дек 10, 2014 08:30
Flasher
Нет. Записи set_tcini(Layout, ButtonBar, 1) не нужны. Для команд вызова панелей юзай исходник.

Добавлено: Ср дек 10, 2014 08:39
ask-rus
И вернулись к проблеме незакрываемости панели инструментов...

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

С этим:
set_tcini(Layout, ButtonBar, 1)
всё в норме.

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

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

И да, зачем тебе вообще em_NoBar при наличии cm_VisButtonbar?

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

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

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

Добавлено спустя 5 минут:
Flasher писал(а):И да, зачем тебе вообще em_NoBar при наличии cm_VisButtonbar?
Право слово, сейчас погляжу.

Добавлено: Ср дек 10, 2014 09:03
Flasher
Исходник тут ни при чём.

Я понял проблему вызова /ei tb0.
hasButtonBar=tcini(Layout, ButtonBar, 1, 1)
Надо спросить у MVV, зачем он поставил <error_value>. Получается, что в случае, если ключ не равен 1, он всегда вернёт 1, для if/eval - это фактическое True. Из-за этого глюк. Надо убрать красное.

Добавлено: Ср дек 10, 2014 09:06
ask-rus
Понятно. Во всяком случае я беру в обиход cm_VisButtonbar. На этом, кажется, всё?

Добавлено: Ср дек 10, 2014 09:07
sa
ask-rus писал(а):Собственно, цель достигнута, благодарю всех за помощь!
Пожалуйста!

Добавлено: Ср дек 10, 2014 09:08
Flasher
ask-rus писал(а):Во всяком случае я беру в обиход cm_VisButtonbar
Правильно, и тогда про проблемы неверной записи можно забыть, как и про совет sa.
ask-rus писал(а):На этом, кажется, всё?
Вроде да, но мне всё-таки мнение MVV хотелось бы увидеть об <error_value>.

Добавлено: Ср дек 10, 2014 09:22
sa
Flasher писал(а):об <error_value>
Из справки к TCFS2:
error_value, если ключ не найден