Обсуждение темы "Обмен кнопками"

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

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

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

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

При вставке кода кнопки на панель пропадают кавычки из команды, первые и последние, если таковые имеются. Что-то я раньше этого не замечал, всегда ли так было?
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

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

Добавлю, что это происходит с кодом кнопки именно отсюда. Копируем код кнопки, вставляем на панель, получаем нерабочую кнопку.
TOTALCMD#BAR#DATA
"%Commander_Path%\Utils\WHS\ReplaceText4FileList.vbs" "%Commander_Path%"
"%%Commander_Path%%" %L
%Commander_Path%\WCMICONS.DLL
Замена путей в выделенных файлах


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

Сообщение Flasher »

Если это баг ТС, то тогда при копипастинге в редактор кавычки бы были. Если они и там не появляются, то это уже оффтоп, п. ч. это проблема не кнопок, а системы или браузера, проверять надо в других. У меня всё в порядке.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

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

Проверил на IE 8, действительно, это баг новой Opera 11.10. Как жаль...
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

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

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

Сообщение Flasher »

Красиво это сделать не получится, потому что ТС никуда эти состояния в текущей сессии не записывает. Только с перезапуском ТС в ShowAllDetails. А если, предположим, их записывать в текстовый файл самостоятельно, то в таком случае после вызова обратной команды стандартным путём скрипт впоследствии не сможет совершить реверс. Делать можно наподобие вот этого, чтобы учесть активность панели. А другой вариант, как ни парадоксально, опять-таки сводится к TCFS2+autorun+HideMenu+undo... :lol:
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

По-моему, достаточно скрипт+TCCP, причем скрипт со счетчиком 0/1 - краткий/подробный. Если режим не_кнопкой переключали - максимум, прийдется нажать кнопку дважды. А значение в файл записывать, хоть в файл самого скрипта.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin
Скрипт скриптом, этого я не отрицал и дал пример такого. Но это будет некрасивое решение, уже объяснил почему.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

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

Сообщение Flasher »

Serge Yolkin писал(а):Но я предложил вообще не отслеживать состояние панели... Ну, нажать кнопу дважды, если с первого раза не попали.
Это будет ещё более некрасивое решение. :)
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

[off]
Flasher
То, что с красотой проблема - я признал сразу. А вот сравнение более/менее спорное. Я предложил идти прихрамывая, ты - кучку костылей и протезов, чтобы почти не хромать. Дело вкуса.
[/off]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin
Дело не во вкусе и протезах, а в лишних манипуляциях, из-за которых просьба и возникла. Если и так можно жать две кнопки/клавиши без использования скриптов, то зачем городить огород с одной кривоработающей кнопкой, которую придётся время от времени нажимать дважды? И костылей в реализации, предложенной тобой, куда больше, если хорошо подумать.
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Serge Yolkin писал(а):Если режим не_кнопкой переключали - максимум, прийдется нажать кнопку дважды. А значение в файл записывать, хоть в файл самого скрипта.
Я себе плохо представляю возможности скриптов, но разве нельзя из них запросить у Тотала элемент списка, послав сообщение LB_GETTEXT? А по полученной строке определять текущий режим.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

CaptainFlint писал(а):запросить у Тотала элемент списка
Пардон, какого списка? Список тут никакой не нужен, достаточно пары строк в теле скрипта, которые будут считываться, а потом меняться в зависимости от выполненой команды. Без определения активности панели это в любом случае криво. Лучше TCFS2 с плагинами решения, ИМХО, не придумать.
Без плагинов (с двойным нажатием при перескоке в другую панель/вкладку с другим режимом) так:
[Items]

switch_view=set_style(# & ~$00008000) tcm(301), style(# & $00008000), switch_view | set_style(# | $00008000) tcm(302), , switch_view
Команда понятно какая: TCFS2.exe /ei switch_view

Хотя есть способ и без проверки на активность:

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

' Реверсивное переключение между
' кратким и подробным режимом
' Условие: необходима регистрация TCHelper
'=============================
With CreateObject("TCScript.Helper")
T=.GetTextFromClip
.LockTC True
.SendKeystroke "{DOWN}"
.SendCommand 2036 'cm_CopyFileDetailsToClip
A=.GetTextFromClip
.SendCommand 2017 'cm_CopyNamesToClip
B=.GetTextFromClip
.SendKeystroke "{UP}"
If A=B Then
   .SendCommand 302 'cm_SrcLong
Else
   .SendCommand 301 'cm_SrcShort
End If
.LockTC False
.SetTextToClip(T)
End With
Последний раз редактировалось Flasher Ср апр 27, 2011 15:35, всего редактировалось 2 раза.
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

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

Flasher писал(а):Без плагинов (с двойным нажатием при перескоке в другую панель/вкладку с другим режимом) так
Не знаю, верна ли кнопка:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
/ei set_style(# & ~$00008000) tcm(301), style(# & $00008000), switch_view | set_style(# | $00008000) tcm(302), , switch_view
%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\TCFS2.exe
TCFS2
%COMMANDER_PATH%\PLUGINS\Tools\TCFS2\

-1
Которая любой режим переводит в "Подробный", но сам "Подробный" в "Краткий" перевести не желает.

Добавлено:
Забил в конфиг, всё заработало. У "Подробного" нет приоритета - с "Эскизов" перехожу в "Краткий", нужно в "Подробный".
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Ответить