Снегопат
https://snegopat.ru/forum/

Область действия хоткеев
https://snegopat.ru/forum/viewtopic.php?f=1&t=216
Страница 1 из 1

Автор:  Magister [ 05 июл 2012, 16:07 ]
Заголовок сообщения:  Область действия хоткеев

А можно ли сделать так, чтобы хоткеи перехватывались не глобально, а только там, где они имеют смысл?
Например, хоткей SnegopatMainScript::ЛистатьПараметрыВперед назначен на Alt + Down.
При этом в панели свойств в поле выбора типа реквизита невозможно открыть раскрывающийся список этим хоткеем.
Аналогично и другие хоткеи перехватываются глобально - что доставляет неудобства.

Автор:  Magister [ 05 июл 2012, 16:11 ]
Заголовок сообщения:  Re: Область действия хоткеев

Хм... ещё веселее.
Переназначил на Ctrl + Alt + Down - всё равно стандартный хоткей не работает.
При запуске без Снегопата - всё нормально.

Автор:  Magister [ 05 июл 2012, 16:12 ]
Заголовок сообщения:  Re: Область действия хоткеев

А, понял.
Alt + Down назначено также на textEditorExt::НайтиВыделенныйТекстВниз
Только почему конфликта не возникло?

Автор:  orefkov [ 05 июл 2012, 17:55 ]
Заголовок сообщения:  Re: Область действия хоткеев

Конфликта не возникает.
Снегопат позволяет на один хоткей вешать несколько макросов.
Вызываются все в том порядке, в котором регистрировались в снегопате.
Если один из макросов вернул все что угодно, кроме false, считается, что он отработал и остальные не вызываются.
Если вернул false - вызывается следующий в цепочке.
Если ни один не отработал, нажатие передается для обработки в 1С.
Т.е. макрос сам должен определять, должен ли он сейчас срабатывать, и если нет - возвращать false.

Автор:  Magister [ 05 июл 2012, 18:32 ]
Заголовок сообщения:  Re: Область действия хоткеев

orefkov писал(а):
Конфликта не возникает.
Снегопат позволяет на один хоткей вешать несколько макросов.
Вызываются все в том порядке, в котором регистрировались в снегопате.
Если один из макросов вернул все что угодно, кроме false, считается, что он отработал и остальные не вызываются.
Если вернул false - вызывается следующий в цепочке.
Если ни один не отработал, нажатие передается для обработки в 1С.
Т.е. макрос сам должен определять, должен ли он сейчас срабатывать, и если нет - возвращать false.

Хм... тогда вопрос к textEditorExt::НайтиВыделенныйТекстВниз - почему он "срабатывает" в поле ввода? В кавычках потому, что собственно ничего не происходит, да и представить я не могу, как можно искать что-то в однострочном поле.

Автор:  orefkov [ 05 июл 2012, 20:54 ]
Заголовок сообщения:  Re: Область действия хоткеев

Видимо, просто макрос не доработан, надо чтобы false возвращал в таких случаях.
Свяжись с автором.

Автор:  artbear [ 05 июл 2012, 21:35 ]
Заголовок сообщения:  Re: Область действия хоткеев

Я могу за автора ответить.
Саш, а как в скрипте определить, что курсор в "большом" текстовом окне, а не в поле ввода?

Автор:  kuntashov [ 05 июл 2012, 21:45 ]
Заголовок сообщения:  Re: Область действия хоткеев

Да там надо вместо

Код:
function macrosНайтиВыделенныйТекстВниз(){
    selectNextPattern(1);
}

function macrosНайтиВыделенныйТекстВверх(){
    selectNextPattern(-1);
}


Сделать

Код:
function macrosНайтиВыделенныйТекстВниз(){
    return selectNextPattern(1);
}

function macrosНайтиВыделенныйТекстВверх(){
    return selectNextPattern(-1);
}


И все будет ок.

Автор:  artbear [ 06 июл 2012, 06:21 ]
Заголовок сообщения:  Re: Область действия хоткеев

orefkov писал(а):
Видимо, просто макрос не доработан, надо чтобы false возвращал в таких случаях.

Поправил таким образом все макросы (штук 5) из данного скрипта.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/