Узнать выделен ли файл под курсором

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

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

Ответить
sanytta
Сообщения: 2
Зарегистрирован: Сб окт 18, 2008 03:57

Узнать выделен ли файл под курсором

Сообщение sanytta »

Здравствуйте!
Пишу скрипт на PowerPro. Собственно проблема: как узнать выделен ли файл под курсором.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Да, но ответ будет верен только при одном условии: если известна сортировка.
Поясню. Требуется узнать две вещи: список выделенных файлов и индекс текущего файла. Первое легко получить, обеспечив скрипт параметром %L. Второе тоже можно сделать (например, так). Далее, располагая полным списком файлов в директории, получаем имя текущего файла, а получить список можно через file.listfiles, хотя бы.
Наконец, если найденное имя входит в найденный спиок, ответ на твой вопрос положительный, иначе отрицательный.
А вот дальше начинаются заморочки. Мы знаем индекс файла при текущей сортировке, а при ее смене индекс, естественно, меняется. Если бы ТС мог вернуть текущий способ сортировки (посылкой сообщений классу THeaderClick), задача бы решалась однозначно.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Извини, братан - запутал я тебя. Все проще можно сделать. Передаем параметры %L и %P%N и определяем, входит ли файл %P%N в список %L. Проверено - работает!
P.S. Впервые в жизни вошел на форум с мобильного телефона. Вот техника дошла!
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
sanytta
Сообщения: 2
Зарегистрирован: Сб окт 18, 2008 03:57

Сообщение sanytta »

Спасибо!! Действительно работает! Только одна проблема: если не выделенно ни одного файла, то список %L будет содержать текущий файл(хоть он и не выделен!!), поэтому программа посчитает что он выделен.

И еще где можно почитать про параметры такие как %L, %N и %P? Какие еще есть? Что-то в стандартной справке по totalcommader не нашел.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

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

sanytta писал(а):И еще где можно почитать про параметры такие как %L, %N и %P? Какие еще есть? Что-то в стандартной справке по totalcommader не нашел.
Вызови настройку панели инструментов, и в ней -- справку
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Только одна проблема: если не выделенно ни одного файла, то список %L будет содержать текущий файл(хоть он и не выделен!!), поэтому программа посчитает что он выделен
Ну, это не проблема:

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

if(NumOfElems == 1)
    IsIn = true;
Для специалистов по Бейсику и Паскалю: если длина списка равна 1, то ответ на вопрос "Выделен ли файл под курсором" положительный. Правда, надо знать специфику задачи: есть ли разница между отсутствием группы и группой из одного ТЕКУЩЕГО файла?

Добавлено
Почему-то на вопрос о PowerPro я привел код на C++. Просто в последние дни приходится много писать именно на С++. Исправляюсь:

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

if(NumOfElems == 1)
    flag set 1
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Ответить