Переключение режимов просмотра

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

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

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

Сообщение sa »

MVV писал(а):Или без пробелов писать надо, или в кавычках.
Спасибо, теперь понятно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

HEXFIX писал(а):Flasher
Не доходит до меня, что делать-то надо?
Смотря какая задача. Этот пост видел?
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Flasher
MVV
Спасибо, разобрался.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):С помощью TCFS2 можно в принципе переключаться между любым числом вариантов, если создать по em-команде на вариант и запоминать номер последнего варианта в регистре TCFS2Tools или параметре wincmd.ini. Самое главное - чётко представлять себе, что же всё-таки хочется реализовать.
Нужно создать две команды на циклическое переключение em-команд вперёд и назад, соответственно.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Левую/правую панели различать надо?

Для начала выделим регистры для режимов каждой панели и укажем максимальное число режимов на каждой панели. Например,

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

; [Macros]
regImgFilterL=10
regImgFilterR=11
swImgFilterCountL=3
swImgFilterCountR=3
Теперь напишем команды, которые будут переключать режим, принимая номер режима в параметре (названия em-команд можно указать любые, в том числе и одинаковые для обеих панелей, если команда работает с активной панелью, а не с конкретно правой-левой; если наборы фильтров одинаковые, можно вообще использовать одну команду):

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

; [Items]
; swImgFilterL(int mode), swImgFilterR(int mode)
swImgFilterL=tem(em_ShowBlackWhiteImages), eval(#1==0) | tem(em_ShowColorImages), eval(#1==1) | tem(em_ShowPaletteImages)
swImgFilterR=run_item(swImgFilterL, #1)
Теперь напишем команду, которая будет инкрементировать значение в регистре и вызывать команду переключения режима:

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

; [Items]

swImgFilterModeNext=run_item(swImgFilterL, regread(regImgFilterL)) eval(regwrite(regImgFilterL, (regread(regImgFilterL)+1)%(swImgFilterCountL))), eval(L_isActive) | run_item(swImgFilterR, regread(regImgFilterR)) eval(regwrite(regImgFilterR, (regread(regImgFilterR)+1)%(swImgFilterCountR)))
При вызове команды она будет включать режим с текущим номером и увеличивать номер в соответствующем регистре. Например, если режимов у панели 3, то она будет включать режимы в таком порядке: 0, 1, 2, 0, 1, ... Перед первым запуском можно записать в регистр номер стартового режима.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

:shock: Ну, навернул. Теперь есть что осваивать.
sergiokapone писал(а):дальше я сам уже буду курить manual и делать кнопки
Угу, уже. :lol: На некоторые вещи и спустя год использования "без страха" не взглянешь. :roll:
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Если вдуматься, ничего сложного:) в команде swImgFilterModeNext два одинаковых блока, каждый для своей панели, так что освоить надо только половину. А в команде swImgFilterL вообще ничего сложного.

Кстати, я это не проверял, только написал, так что проверяйте:)
Ответить