Можно ли повесить сдвиг панелей (20/80 и 80/20) на кнопку(и)

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

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

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

Сообщение sa »

Значения TCS.Pause=600 перед Key = ... оказалось уже достаточно для решения вопроса. Спасибо за совет!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В общем, подправил скрипт. Теперь будет работать в архивах, в системных плагинах, в виртуальной папке "Рабочий стол".

Для виртуальной папки "Панель управления"(cm_OpenControls) и "Сеть"(cm_OpenNetwork) не делал, т.к. там нет смысла двигать сепаратор, для "Шрифты"(cm_OpenFonts) также не стал делать, потому что быстрый просмотр в ней всё равно не работает.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Flasher
Подскажи, пожалуйста, как изменить процентное соотношение сдвига? :D
Т.е. чтобы панельки сдвигались чуть поменьше... я полный нуб в этих делах :oops:
Надеюсь, что понятно объяснил :)
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Flasher писал(а): TCS.Separator=15
...
TCS.Separator=85
Неужели непонятно Изображение

50 – это по-серединке; 25 и 75 будут 1/4 и 3/4 окна
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Tol!k
Спасибо.

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

Сообщение Flasher »

HEXFIX
То, что выделено зелёном цветом, ИМХО, вполне очевидно воспринимается как изменяемые значения. TCS.Separator(сепаратор) уже в своём названии несёт суть разделителя панелей.
[off]
Форум предназначен для обсуждения, это не техподдержка, и все его пользователи имеют равнозначные позиции, каждый сам выбирает, помогать или нет. Главное, чтобы сказанное было по делу и с учётом правил. Поскольку ответ дан, не вижу смысла в споре.
[/off]
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

HEXFIX писал(а):Ага, непонятно - не программист и с Total Commander познакомился совсем недавно.
В любом случае, одним из предназначений форума является помощь таким вот непонятливым, разве нет?
[off]
С некоторыми оговорками. В частности, для того, чтобы догадаться, что для получения другого сдвига надо указать другие значения, диплом программиста и многолетний опыт освоения программы в общем и целом необязательны. :wink:
Кстати, и я не программист, и очень многие другие тут тоже.
[/off]
Даже самая богатая фантазия
Не представит себе наши безобразия.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

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

Сообщение Flasher »

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

Сообщение Flasher »

Эх, что'ж мне никто не подсказал.. Оказалось всё гораздо проще, чем я думал:

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

' Уменьшить ширину активной панели
' Параметры %P%N %T%M %X%P%N %Z
' Необходима регистрация "Script helper ActiveX for TC"
' Автор - Flasher (c)
'=================================
With CreateObject("TCScript.Helper")
If .Separator<>50 Or _
WScript.Arguments(0)=WScript.Arguments(1) Then
   .SendCommand "cm_50Percent"
Else
  If WScript.Arguments(0)=WScript.Arguments(2) Then
   .Separator=15
  Else
   .Separator=85
  End If
End If
End With
Теперь правильно работает везде, во всех виртуальных папках, архивах и результатах поиска. При случае, когда пути в файловых панелях совпадают, обратите внимание, чтобы текущее положение курсора не совпадало с обеих сторон.
sa
Теперь никакие таймауты не потребуются. :wink:
Последний раз редактировалось Flasher Сб ноя 13, 2010 01:50, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В принципе я могу сделать вот какую штуку: если пути одинаковые, то путь в панели получателя будет сменяться на предшествующий, и тогда произойдёт сдвиг сепаратора в нужную сторону. Это кому-нибудь надо?
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Flasher писал(а):кроме случая с одинаковыми путями в двух панелях
Если в параметрах дополнить пути именами файлов

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

""%P%N"" ""%T%M"" ""%X%P%N"" %Z
, вероятность правильного срабатывания не увеличится?

PS Для работы с файлами/каталогами, содержащими пробелы, добавил обрамляющие кавычки.
Последний раз редактировалось sa Чт ноя 11, 2010 13:19, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sa
:shock: У тебя какие-то проблемы с правильным срабатыванием возникли?

Предложенный случай не подходит, ибо при постановке курсора на элементе [..] будет неправильно считываться путь и сервер сценариев выдаст ошибку. Я пробовал применять %N для результатов поиска, потому что там он возвращает полный путь к файлу под курсором, в то время как %P не сработает, но для общего случая это не подойдёт, и не понятно, зачем он вообще тут нужен, мы же пути текущих каталогов сравниваем.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

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

Сообщение Flasher »

А если ты только об одинаковых путях, то иначе, чем с предложенным мной способом или с опять-таки с записью/чтением секций истории тут не получится, и там не всё так просто, как кажется, муторно это. С твоими параметрами даже пробовать не буду, пускай, если и сценарий не покажет ошибку, то скрипт всё равно будет неправильно работать из правой панели.
Ответить