О желательности сокращённого перечисления областей
О желательности сокращённого перечисления областей
Нередко навешиваю макросы, распространяемые на все области — Common, на одинаковые шорткаты. Но в этом случае вызов макросов в области Menu зацикливается на меню "Исполнить макрос". И из-за этого приходится делать длинное перечисление областей с исключением области Menu: area = "Other Shell Viewer Editor Dialog Search Disks MainMenu Help Info QView Tree FindFolder UserMenu ShellAutoCompletion DialogAutoCompletion";.
Поэтому вопрос следующий: нельзя ли сделать возможность укороченной записи что-то типа такой: area = "Common –Menu"; заодно она была бы и более читабельной — не надо проверять все ли области перечислены.
Поэтому вопрос следующий: нельзя ли сделать возможность укороченной записи что-то типа такой: area = "Common –Menu"; заодно она была бы и более читабельной — не надо проверять все ли области перечислены.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
О желательности сокращённого перечисления областей
Можно оставить area="Common", но добавить функцию condition, например, для исключения всех меню:
или для исключения только меню "Исполнить макрос":
Если в макрофайле много таких макросов, можно эту функцию вынести наверх и дать ей имя, а в макросах просто указывать
condition=function() return not Area.Menu end;
или для исключения только меню "Исполнить макрос":
condition=function() return not (Area.Menu and Menu.Id=="165AA6E3-C89B-4F82-A0C5-C309243FD21B") end;
Если в макрофайле много таких макросов, можно эту функцию вынести наверх и дать ей имя, а в макросах просто указывать
condition=<имя>;
О желательности сокращённого перечисления областей
Shmuel
John Doe
Спасибо! Ваши советы гораздо удобнее решают задачу, чем тот вариант, который предполагался мною.
При этом если после добавления указанного condition в меню "Исполнить макрос" случайно нажать заданный шорткат, то вылезает
John Doe
Спасибо! Ваши советы гораздо удобнее решают задачу, чем тот вариант, который предполагался мною.
При этом если после добавления указанного condition в меню "Исполнить макрос" случайно нажать заданный шорткат, то вылезает
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
О желательности сокращённого перечисления областей
sToLp
У вас не последняя версия календаря. А автор календаря пусть желательно не "затеняет" глобальные переменные своими локальными.
У вас не последняя версия календаря. А автор календаря пусть желательно не "затеняет" глобальные переменные своими локальными.
О желательности сокращённого перечисления областей
И действительно, скачал последнюю версию dimfish_Calendar, добавил кондишен и ошибка исчезла. Спасибо!
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
О желательности сокращённого перечисления областей
Ошибка не должна была исчезнуть. Ошибка присутствует и в текущей версии календаря, это строчка 74:
local Menu = far.Menu
.Чтобы не ждать милостей от природы автора календаря, замените Menu.Id на _G.Menu.Id.
О желательности сокращённого перечисления областей
Shmuel
Тем не менее исчезла, уж поверьте на слово. Новая версия существенно переработана. Кондишен теперь не в 553, а в 313 строке.
Сделаю. Спасибо!
О желательности сокращённого перечисления областей
Честное слово! Могу прислать файлы.
В старой версии макроса поменял Menu.Id на _G.Menu.Id и ошибка там тоже исчезла.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
О желательности сокращённого перечисления областей
Анекдот. В одной национальной советской школе, ученик отвечает учителю, что 2*2=5. Учитель спрашивает: чем можешь доказать? Ответ: мамой клянусь.
О желательности сокращённого перечисления областей
Shmuel
Да не виноват я, что она исчезла. Вы мне сами подсказали как с нею справиться. И исчезла ошибка до того как я поменял Menu.Id на _G.Menu.Id. Я перепроверял переходя на старую версию и возвращаясь. В старой версии без смены Menu.Id на _G.Menu.Id ошибка повторялась, а в новой её уже не было изначально. Хотите верьте, а хотите проверьте.
Да не виноват я, что она исчезла. Вы мне сами подсказали как с нею справиться. И исчезла ошибка до того как я поменял Menu.Id на _G.Menu.Id. Я перепроверял переходя на старую версию и возвращаясь. В старой версии без смены Menu.Id на _G.Menu.Id ошибка повторялась, а в новой её уже не было изначально. Хотите верьте, а хотите проверьте.
- Attachments
-
- probe.7z
- (8.85 KiB) Downloaded 61 times