Latest post of the previous page:
Благодарю Вас за разъяснение! Если я правильно понял, то при возможности выгоднее применять макрос по событиям. Во-первых, потому, что обычный не всегда всё отлавливает. Во-вторых, в случае, если потребуются другие макросы в том же диапазоне ключей, то макрос по событиям заведомо не будет им препятствовать.Улучшение меню с дублирующимися хоткеями
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
All, из макроса "Reset filters" необходимо убрать область MainMenu (перевыкладывать пока не буду).
sToLp, если интересно, то этот же макрос можно переписать и в виде события, как-то так .
Никаких бонусов это впрочем не даёт.
sToLp, если интересно, то этот же макрос можно переписать и в виде события, как-то так .
Никаких бонусов это впрочем не даёт.
Улучшение меню с дублирующимися хоткеями
Хорошо. Тем более, что Главное меню ещё и не затрагивалось практически. Поскольку, кажется, что оно ни с точки зрения дублирования хоткеев, ни в плане простой фильтрации, особого интереса вроде бы пока и не представляет. Разве что тогда, когда пользователю будет позволено расширять и дополнять его.John Doe wrote:All, из макроса "Reset filters" необходимо убрать область MainMenu
Очень даже интересно!John Doe wrote:sToLp, если интересно, то этот же макрос можно переписать и в виде события
Может быть на практике в конечной реализации особой разницы и нету. Но при этом в сравнении ведь легче усвоить различия между обычным макросом и макросом по событиям. А это само по себе тоже дополнительная польза. Большое спасибо за обнародование вариации макроса!John Doe wrote:Никаких бонусов это впрочем не даёт.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
Уточню на всякий случай: макрос отвечал только за сброс фильтра по Esc, всё остальное потенциально работает в главном меню так же как и в любом другом.
Например сейчас в меню Параметры дублируется хоткей "ы".
Режимы панели файлов
Кодовые страницы
Улучшение меню с дублирующимися хоткеями
Да! ConcurrentHotkeys и в Главном меню тоже обеспечивает фильтрацию по конкурирующим хоткеям:
Но когда я писал о том, что Главное меню в плане применения ConcurrentHotkeys "особого интереса пока не представляет", то подразумевал под этим не то, что в этом меню мало конкурирующих хоткеев, и не то, что по одиночным хоткеям Главное меню не фильтруется. В данном случае это, по-моему, пока не так важно. Существенное отличие Главного меню от других в том, что хоткеи в нём не зависят от текущей раскладки клавиатуры. Безразлично, нажимаю ли я на клавишу с буквами
И для работы с Главным меню это уже привычно. А вот для работы с теми меню, которые я как пользователь имею возможность настраивать сам, лично для меня такой принцип срабатывания хоткеев представляется нежелательным ограничением. Поскольку предпочитаю и считаю намного более удобным различать в качестве хоткеев РУССКИЕ БУКВЫ и english letters. И мой в целом положительный опыт опробования и применения ConcurrentHotkeys с этой позиции показывает следующее.
Повторяющиеся хоткеи ConcurrentHotkeys отлично фильтрует в соответствии с тем, в какой раскладке нажата соответствующая клавиша. При этом, замечена интересная особенность. Если в меню отсутствуют английские хоткеи, парные русским, то и в английской раскладке тоже вызывается отфильтрованное по этим русским буквам меню (если они в меню повторяются, разумеется).
С неповторяющимися же хоткеями иная ситуация. Для аглицких хоткеев тоже вызывается отфильтрованное меню (в котором только одна позиция). Нажатие же на русский хоткей сразу же выбирает соответствующую ему строку — посылает её на исполнение, то есть одиночное меню по русским хоткеям не выводится.
Это опробовано по каждой из букв обоих алфавитов в меню "Ассоциации для файлов (File associations)". В других меню — пока выборочно.
Но когда я писал о том, что Главное меню в плане применения ConcurrentHotkeys "особого интереса пока не представляет", то подразумевал под этим не то, что в этом меню мало конкурирующих хоткеев, и не то, что по одиночным хоткеям Главное меню не фильтруется. В данном случае это, по-моему, пока не так важно. Существенное отличие Главного меню от других в том, что хоткеи в нём не зависят от текущей раскладки клавиатуры. Безразлично, нажимаю ли я на клавишу с буквами
S/Ы
в английской или в русской раскладке, всё равно сработает хоткей ы
. Поскольку в русском интерфейсе английских хоткеев в Главном меню и не дано. И для работы с Главным меню это уже привычно. А вот для работы с теми меню, которые я как пользователь имею возможность настраивать сам, лично для меня такой принцип срабатывания хоткеев представляется нежелательным ограничением. Поскольку предпочитаю и считаю намного более удобным различать в качестве хоткеев РУССКИЕ БУКВЫ и english letters. И мой в целом положительный опыт опробования и применения ConcurrentHotkeys с этой позиции показывает следующее.
Повторяющиеся хоткеи ConcurrentHotkeys отлично фильтрует в соответствии с тем, в какой раскладке нажата соответствующая клавиша. При этом, замечена интересная особенность. Если в меню отсутствуют английские хоткеи, парные русским, то и в английской раскладке тоже вызывается отфильтрованное по этим русским буквам меню (если они в меню повторяются, разумеется).
С неповторяющимися же хоткеями иная ситуация. Для аглицких хоткеев тоже вызывается отфильтрованное меню (в котором только одна позиция). Нажатие же на русский хоткей сразу же выбирает соответствующую ему строку — посылает её на исполнение, то есть одиночное меню по русским хоткеям не выводится.
Это опробовано по каждой из букв обоих алфавитов в меню "Ассоциации для файлов (File associations)". В других меню — пока выборочно.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
В этом меню вообще не должно быть конкурирующих хоткеев...
Да, это неправильно (причина описана на багтрекере http://bugs.farmanager.com/view.php?id=2881).
Стоит подправить "Concurrent hotkeys menu filter". Добавьте перед
return 0
вот эту строку:
Code: Select all
if Object.ItemCount==1 then return param.hDlg:send"DM_CLOSE" end
Улучшение меню с дублирующимися хоткеями
Благодарю за оперативнейшее решение!
Добавил. Теперь, вроде, всё в норме:
Не парные и не дублирующиеся хоткеи сразу срабатывают в любой раскладке.
Парные хоткеи срабатывают в соответствующий раскладке: не дублирующиеся — сразу, дублирующиеся — выводят отфильтрованное меню.
Дублирующиеся не парные хоткеи в любой раскладке выводят меню, отфильтрованные по данному хоткею.
Добавил. Теперь, вроде, всё в норме:
Не парные и не дублирующиеся хоткеи сразу срабатывают в любой раскладке.
Парные хоткеи срабатывают в соответствующий раскладке: не дублирующиеся — сразу, дублирующиеся — выводят отфильтрованное меню.
Дублирующиеся не парные хоткеи в любой раскладке выводят меню, отфильтрованные по данному хоткею.
Улучшение меню с дублирующимися хоткеями
- Нажатие Esc или F10 отменяет фильтр.
Esc сбрасывает отфильтрованное меню и возвращает к родительскому. И это хорошо.
А вот когда макрос "Reset filters" заменён на обработчик F10 отменяет также и родительское меню.
И это, по-моему, тоже хорошо.
И я за то, чтобы так и было — и можно бы просто уточнить анонс.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
У варианта в шапке это не так, потому что в макросе указаны обе клавиши.
Исправить сами понимаете элементарно.
Улучшение меню с дублирующимися хоткеями
Проявилось таки различие между обычным макросом на
Вместо обратного выхода в родительское меню выводится фантомное. А последующее нажатие на
Когда в отфильтрованном меню три позиции: , то в фантомном замещаются две нижние:
С другими типами меню пока такого не встречал — все доселе опробованные меню на макрос-обработчик и на обычный макрос реагировали однотипно.
Esc
и обработчиком: отфильтрованное меню "Выберите ассоциацию" на обработчик реагирует неверно.Вместо обратного выхода в родительское меню выводится фантомное. А последующее нажатие на
Esc
отменяет и его, и возврата в родительское меню не происходит. Когда в отфильтрованном меню три позиции: , то в фантомном замещаются две нижние:
С другими типами меню пока такого не встречал — все доселе опробованные меню на макрос-обработчик и на обычный макрос реагировали однотипно.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
Обратите внимание на полосу прокрутки на последнем скриншоте.
Т.е. очевидно, что пункты меню восстановилось, а размер нет (легко проверить с помощью курсорных клавиш)
Вероятно и на остальных скриншотах то же самое, но странно что полосы прокрутки нет.
Похоже какая-то особенность фара, или даже баг.
В скрипте исправить просто, достаточно вызов Menu.Filter переставить ниже, перед return 1
Т.е. очевидно, что пункты меню восстановилось, а размер нет (легко проверить с помощью курсорных клавиш)
Вероятно и на остальных скриншотах то же самое, но странно что полосы прокрутки нет.
Похоже какая-то особенность фара, или даже баг.
В скрипте исправить просто, достаточно вызов Menu.Filter переставить ниже, перед return 1
Улучшение меню с дублирующимися хоткеями
Да. Так и есть.John Doe wrote:Обратите внимание на полосу прокрутки на последнем скриншоте.
Т.е. очевидно, что пункты меню восстановились, а размер нет (легко проверить с помощью курсорных клавиш)
Вероятно и на остальных скриншотах то же самое
Да, это тоже подтверждаю: переставил, и теперь меню "Выберите ассоциацию" на обработчик реагирует правильно. Благодарю Вас!John Doe wrote:В скрипте исправить просто, достаточно вызов Menu.Filter переставить ниже, перед return 1
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
- Внесены 2 уточнения, упоминавшиеся ранее: http://forum.farmanager.com/viewtopic.p ... 19#p126519, http://forum.farmanager.com/viewtopic.p ... 39#p126539
- Скрипт больше не фильтрует список, если все его элементы имеют одинаковый хоткей
- Адаптация к исправлению http://bugs.farmanager.com/view.php?id=2878
Теперь для корректной работы требуется FAR 3 build >=4215
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Улучшение меню с дублирующимися хоткеями
Прошу прощения, в обработчике Ctrl-<хоткей> забыл убрать отладочный код: .
Обновил в шапке.
sToLp, спасибо за репорт.
Обновил в шапке.
sToLp, спасибо за репорт.
Улучшение меню с дублирующимися хоткеями
Ранее я упоминал о попытке приспособить макрос №3 (немодальный фильтр) из набора SmartMenuFilter для совместной работы с сабжевыми макросами.
Однако сочетание модификаторов
А так как одиночный
Другие попытки приспособить другие макросы из набора SmartMenuFilter к бесконфликтной работе с сабжевыми продолжаются.
Однако сочетание модификаторов
AltShift
оказалось весьма неудобным. И из-за того, что занимает Shift
, который может понадобиться для ввода завязанного на него хоткея. И из-за того, что само по себе очень часто по умолчанию применяется в качестве переключателя раскладок клавиатуры (что чревато сбивками при вводе букв в фильтр). А так как одиночный
Ctrl
занят, то попробовал я посадить этот макрос на сочетание модификаторов LCtrlLAlt
. И пока что вроде бы работает эта связка хорошо, немодальный фильтр обслуживает, нативному фильтру не препятствует, правой спайке Ctrl`а
и Alt`а
реализовывать макросы по CtrlAlt-знак
не мешает. Другие попытки приспособить другие макросы из набора SmartMenuFilter к бесконфликтной работе с сабжевыми продолжаются.