Позиционирование в меню по Alt-ГорячаяКлавиша
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Позиционирование в меню по Alt-ГорячаяКлавиша
Скрипт работает в разнообразных меню, в т.ч. в меню дисков; ищет в от текущей позиции, если не нашёл — от начала.
Поддерживает дублирующиеся горячие клавиши (обходит по кругу). Горячие клавиши, для ввода которых требуется нажатие Shift (например ‘#’, ‘_’), пока не поддерживаются.
Поддерживает дублирующиеся горячие клавиши (обходит по кругу). Горячие клавиши, для ввода которых требуется нажатие Shift (например ‘#’, ‘_’), пока не поддерживаются.
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Версия 2016.09.21.1: исправлено зацикливание в главных меню
Reason: Версия 2016.09.21.1: исправлено зацикливание в главных меню
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Позиционирование в меню по Alt-ГорячаяКлавиша
Для информации:
http://forum.farmanager.com/viewtopic.php?f=15&t=9197
Если использовать хоткей с модификатором Alt, то фильтрации не происходит, а только лишь перемещается курсор
http://forum.farmanager.com/viewtopic.php?f=15&t=9197
Если использовать хоткей с модификатором Alt, то фильтрации не происходит, а только лишь перемещается курсор
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaMacro — Lua как язык макросов
Меня вот эта строка настораживает
MainMenu может быть как горизонтальным так и вертикальным, поэтому не уверен что этот код работает как задумано.
Code: Select all
Keys( Area.Current == 'MainMenu' and 'Right' or 'Down' )
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
LuaMacro — Lua как язык макросов
С вариантомJohn Doe wrote: Меня вот эта строка настораживаетCode: Select all
Keys( Area.Current == 'MainMenu' and 'Right' or 'Down' )
Keys( Area.MainMenu and 'Right' or 'Down' )
эффект тот же.А у Вас воспроизводится?
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на обсуждение падения
Reason: Добавлена ссылка на обсуждение падения
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaMacro — Lua как язык макросов
Я вообще-то имел ввиду что не понимаю как тут Right вообще может работать.
Баг в скрипте, он зацикливается.
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
LuaMacro — Lua как язык макросов
Блин, и в самом деле. Оказывается, эти подменю тоже имеют Area.MainMenu. Как же мне тогда отличить горизонтальное меню от вертикального?
Обсуждение переношу к скрипту.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
LuaMacro — Lua как язык макросов
В макро апи нет средств чтобы отличить вертикальное от горизонтального.
Как-то так можно:
Как-то так можно:
Code: Select all
local key = "Down"
if Area.MainMenu and far.AdvControl("ACTL_GETWINDOWINFO").Type==0x10 then
key = "Right"
end
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Позиционирование в меню по Alt-ГорячаяКлавиша
Можно, конечно, по косвенным признакам, но хотелось бы прямой проверкой.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Позиционирование в меню по Alt-ГорячаяКлавиша
Через апи плагинов более-менее прямо, если не считать того, что константы нет: http://bugs.farmanager.com/view.php?id=2761
Для макроапи тоже было бы неплохо, тикет давно висит http://bugs.farmanager.com/view.php?id=2760
Для макроапи тоже было бы неплохо, тикет давно висит http://bugs.farmanager.com/view.php?id=2760
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Позиционирование в меню по Alt-ГорячаяКлавиша
Спасибо!
Только либо просто 10, либо уж 0x0A. Я исправил код в шапке.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Позиционирование в меню по Alt-ГорячаяКлавиша
На мантисе я просил отдельную макрообласть для HMENU, но..
По факту у меня например всего 3 макроса это использовали бы, так что не знаю как лучше.
Если не заводить отдельную макрообласть, тогда необходимо документировать, что случай, когда меню не раскрыто, можно определить, используя Object.Height.