Страница 3 из 4
Добавлено: Пн май 09, 2011 19:08
MVV
Flasher, в первом посте запрашивалась кнопка для переключения между текущим режимом и каким-то заданным. Его задаём в параметре команды
switch_viewmode_S.
Лично проверял 269, 301 и 302. Если текущий режим не подробный, кнопка с
switch_viewmode_S(302) гарантированно переключает между текущим режимом и подробным.
А куда по-твоему должна переключать кнопка переключения в подробный режим, если её запустили, когда панель и так в подробном, при этом информации о предыдущем режиме нет, или же там тоже указан подробный режим?

Добавлено: Пн май 09, 2011 19:18
Flasher
MVV писал(а):в первом посте запрашивалась кнопка для переключения между текущим режимом и каким-то заданным. Его задаём в параметре команды switch_viewmode_S.
Ты написал, что не надо плодить кнопки, а я прокомментировал, почему это не совсем верно.
MVV писал(а):А куда по-твоему должна переключать кнопка переключения в полный режим, если её запустили, когда панель и так в полном, при этом информации о предыдущем режиме нет, или же там тоже указан полный режим?
Из подробного (а не полного) режима кнопка должна переключаться в предыдущий либо указанный, как это делают мои команды. Грошь цена такой инверсной команде, которая не может переключаться из совпавшего с указанным режимом.
MVV писал(а):Лично проверял 269, 301 и 302. Если текущий режим не подробный, кнопка с switch_viewmode_S(302) гарантированно переключает между текущим режимом и подробным.
Не знаю. Переключается так, как я описал, в указанный режим и всё, обратного переключения не происходит. Вот с 269 происходит, с остальными - нет.
ЗЫ: в личке почему не ответил?
Добавлено: Пн май 09, 2011 19:38
MVV
Ты написал, что не надо плодить кнопки, а я прокомментировал, почему это не совсем верно.
Я писал, что команды плодить не надо, а не кнопки.
Из подробного (а не полного) режима кнопка должна переключаться в предыдущий либо указанный, как это делают мои команды. Грошь цена такой инверсной команде, которая не может переключаться из совпавшего с указанным режимом.
Совсем несложно модифицировать команду, чтобы переключала в указанный.

Справитесь и сами. Добавить условие для второго переключения и ещё одну команду через палку.
Не знаю. Переключается так, как я описал, в указанный режим и всё, обратного переключения не происходит. Вот с 269 происходит, с остальными - нет.
А я тебе скажу, почему, я тоже сначала не мог понять. Команда 269 сама по себе переключает в предыдущий режим и без нашей помощи.
Добавлено: Пн май 09, 2011 19:48
Flasher
MVV писал(а):Я писал, что команды плодить не надо, а не кнопки.
Пардон, я команды и имел в виду.
MVV писал(а):Справитесь и сами.
Я то справлюсь при прочих равных. А вот ...
MVV писал(а):А я тебе скажу, почему, я тоже сначала не мог понять. Команда 269 сама по себе переключает в предыдущий режим и без нашей помощи.
Верно. Тогда смысла использовать твою команду нет никакого, потому что она аналогична внутренней команде, где также нет никакой инверсии. А в исходном посте была неточная формулировка. Дальше идёт уточнение:
HEXFIX писал(а):нажимаю кнопку - режим переключается в "подробно", нажимаю повторно - переключается обратно. Т.е. вкл.\выкл.
Добавлено: Пн май 09, 2011 19:57
MVV
Ну оно так и работает. Нажимаешь - переключается в подробный, ещё раз нажимаешь - обратно.
А для добавления второго режима совсем необязательно писать новые команды. Можно модифицировать эти и просто передавать в них два параметра - режим для переключения и резервный режим, куда будет переключаться из первого, если в конфиге прописан он же. Что-то вроде:
Код: Выделить всё
switch_viewmode_L=set_tcini(left, LastViewMode, L_viewMode) tcm(#1), test(L_viewMode != (#1)) | tcm(tcini(left, LastViewMode, #) != #1 || !(#2) ? #1 : #2)
Т.е. при обратном переключении смотрит, что в конфиге сохранен такой же режим, что и задан, и переключается на резервный (если он задан - т.е. не равен нулю).
Команду для правой - аналогично. А команду для активной добавить, чтобы передавала и второй параметр:
Код: Выделить всё
switch_viewmode_S=run_item(switch_viewmode_L, #1-200, #2), test(L_isActive) | run_item(switch_viewmode_R, #1-100, #2)
Запускаем так:
Добавлено: Пн май 09, 2011 20:19
Flasher
MVV писал(а):Ну оно так и работает. Нажимаешь - переключается в подробный, ещё раз нажимаешь - обратно.
У меня обратно не хочет. С новыми предложенными командами то же самое.

Версия TCFS2Tools точно последняя, скачал ещё раз - перепроверил. TCFS2 - 2.0.
И ты почему-то забыл:
Код: Выделить всё
switch_viewmode_R=set_tcini(right, LastViewMode, R_viewMode) tcm(#1), test(R_viewMode != (#1)) | tcm(tcini(right, LastViewMode, #) != #1 || !(#2) ? #1 : #2)
Хотя это опять ничего не поменяло.
Зато работает такая смешная команда: /u- /ei "switch_viewmode_S(304, 303)"
Смешная, но прикольная!

Добавлено: Пн май 09, 2011 20:54
MVV
Я не забыл, я написал:
Команду для правой - аналогично.
Но по идее теперь TCFS2 должна ругаться, если что-то ей не нравится в конфиге - уже несколько раз убедился в удобстве этой штуки.
А команду надо перепроверить, у меня тоже пока не работает.

Кстати, чтобы можно было не указывать второй параметр команды, можно в switch_viewmode_S везде вместо #2 написать (#2-0) - тогда при пустом #2 получится (-0), что не является неверным выражением.

Добавлено: Пн май 09, 2011 21:27
Flasher
MVV писал(а):Но по идее теперь TCFS2 должна ругаться, если что-то ей не нравится в конфиге
Ага, но я сразу заметил, что R-ки нету.
MVV писал(а):Кстати, чтобы можно было не указывать второй параметр команды, можно в switch_viewmode_S везде вместо #2 написать (#2-0) - тогда при пустом #2 получится (-0), что не является неверным выражением.
Сделал, но толку от этого ... сам понимаешь.
Добавлено спустя 26 минут 51 секунду:
HEXFIX писал(а):Разобрался. Всё работает.
Flasher, огромное спасибо!
Пожалуйста. Но с обновлённым модулем (так уж случилось, что твой запрос натолкнул меня запросить эту фичу) теперь достаточно использовать команды в комстроке без прописывания в TCSF2.ini:
...\TCFS2.exe /u- /ef "tcm(27
1), test(S_viewMode != 27
1) | tcm(302)"
...\TCFS2.exe /u- /ef "tcm(27
2), test(S_viewMode != 27
2) | tcm(302)"
...\TCFS2.exe /u- /ef "tcm(27
3), test(S_viewMode != 27
3) | tcm(302)"
................
...\TCFS2.exe /u- /ef "tcm(2
99), test(S_viewMode != 2
99) | tcm(302)"
Макрос
S_viewMode заменить на тот, что привёл
MVV.
Добавлено: Пн май 09, 2011 21:40
MVV
Допилил команду. Пора завязывать с такой травой.
Код: Выделить всё
switch2_viewmode_L=set_tcini(left, LastViewMode, L_viewMode) tcm(#1), test(L_viewMode != (#1)) | tcm(tcini(left, LastViewMode, #) != (#1) || !(#2) ? tcini(left, LastViewMode, #) : (#2))
switch2_viewmode_R=set_tcini(right, LastViewMode, R_viewMode) tcm(#1), test(R_viewMode != (#1)) | tcm(tcini(right, LastViewMode, #) != (#1) || !(#2) ? tcini(right, LastViewMode, #) : (#2))
switch2_viewmode_S=run_item(switch2_viewmode_L, #1-200, #2-0), test(L_isActive) | run_item(switch2_viewmode_R, #1-100, #2-0)
Итого, если запускать без второго параметра, работает так же, как
switch_viewmode_S:
А если со вторым, то при совпадении текущего режима и того, что сохранен в INI, будет переходить к резервному режиму, указанному вторым параметром:
Конечно, эти три команды тоже можно записать в одну строку и не править INI.......... но я этого делать не буду.

Добавлено: Пн май 09, 2011 21:55
Flasher
Да, сейчас работает. Жаль только оконце периодически мелькает в правой панели при переключении между 301 и 302. Вот с колонками такого почему-то нет.
Добавлено: Пн май 09, 2011 22:05
MVV
У меня обе панели мелькают одинаково. Ровно так же, как и при переключении режимов по Ctrl+F1 и Ctrl+F2. Собственно, мы это и делаем.
Кстати, эта команда с
(301, 302) не переключает из краткого режима, если в INI нет параметра
LastViewMode. Оставляю исправление этого в качестве домашнего задания.

Добавлено: Вт май 10, 2011 08:52
HEXFIX
MVV
Flasher
Не доходит до меня, что делать-то надо?
Скопировал код
Код: Выделить всё
switch2_viewmode_L=set_tcini(left, LastViewMode, L_viewMode) tcm(#1), test(L_viewMode != (#1)) | tcm(tcini(left, LastViewMode, #) != (#1) || !(#2) ? tcini(left, LastViewMode, #) : (#2))
switch2_viewmode_R=set_tcini(right, LastViewMode, R_viewMode) tcm(#1), test(R_viewMode != (#1)) | tcm(tcini(right, LastViewMode, #) != (#1) || !(#2) ? tcini(right, LastViewMode, #) : (#2))
switch2_viewmode_S=run_item(switch2_viewmode_L, #1-200, #2-0), test(L_isActive) | run_item(switch2_viewmode_R, #1-100, #2-0)
в секцию [Items].
А дальше что? Что писать в поле "Команда" и "Параметры" у кнопки?
Добавлено: Вт май 10, 2011 09:50
MVV
Ну как что? Мы же приводили примеры:
Это для переключения между текущим и подробным режимом. Вместо первого числа для других кнопок можешь подставлять номера других
cm_Src* команд. Второе число оставляй везде 301, но если первое пишешь 301, то во втором напиши 302.
Добавлено: Вт май 10, 2011 11:18
sa
MVV писал(а):/ei switch2_viewmode_R
В последних постах: может всё-таки правильнее
/ei switch2_viewmode_S?
И ещё. У меня команда срабатывает, но вылетает сообщение
Добавлено: Вт май 10, 2011 11:35
MVV
А у тебя точно последний вариант команды?
О, вспомнил, почему такая ошибка появляется. Это когда ты в командной строке команду пишешь, и забываешь кавычки, тогда 301 после пробела рассматривается как имя следующей команды, так как уже находится в следующем параметре командной строки. Или без пробелов писать надо, или в кавычках.
Блин, это ж у мя пример без кавычек был.
Да, и про
_S тоже верное наблюдение. Я
тут писал правильно, а потом косячил.
