Перестало работать Menu.Show Topic is solved
Перестало работать Menu.Show
Перестало показываться меню:
Проверка на архиве ночных версий показала, что меню перестаёт отображаться при переходе с Far30b5520.x64.20191207 на Far30b5522.x64.20191208. Никаких сообщений не выдётся, просто проскакивает строку, как будто её и нет.
Проверялось на чистых дистрибутивах, где добавлялся только один этот макрос.
Проверялось на чистых дистрибутивах, где добавлялся только один этот макрос.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Перестало работать Menu.Show
Фар 5560 - работает.
Code: Select all
╔═ FB2 Editor ══╗
║ [1] Entities ║
║ [2] Document ║
║ [3] Content ║
║ [4] Actions ║
╚════ © VER ════╝
- HaRT
- Moderator
- Posts: 10869
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Перестало работать Menu.Show
У меня вот такой код нормально работает: (без последнего параметра тоже).
Far Manager v3.0 build 5563 x86 (2020-02-26)
Code: Select all
Menu.Show("[&1] Entities\n[&2] Document\n[&3] Content\n[&4] Actions", "FB2 Editor\n© " .. "VER", 0x8 + 0x80, 3)
Far Manager v3.0 build 5563 x86 (2020-02-26)
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Перестало работать Menu.Show
Судя по этому (оригинальному) коду, меню будет выводиться только 1 раз, при первом вызове. Но это не проблема Фара, естественно.
Перестало работать Menu.Show
Да нет. Проблема в том что изменился вызов макросов.
Макрос был написал лет 5 назад, и прекрасно работал до 5520 включительно: А теперь в функцию FB2Editor стала передаваться таблица с параметрами макроса, и вызов меню сломался.
При этом если записать вызов так: то всё работает.
Макрос был написал лет 5 назад, и прекрасно работал до 5520 включительно: А теперь в функцию FB2Editor стала передаваться таблица с параметрами макроса, и вызов меню сломался.
При этом если записать вызов так: то всё работает.
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Перестало работать Menu.Show
Эта тема обсуждалась. Изменился список параметров, передаваемых в action. Если сама процедура их не использует - не страшно; иначе надо исправлять.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Перестало работать Menu.Show
Классический пример неадекватного репорта и обращения за помощью. Показывается одна строчка кода и задаётся вопрос, почему не работает. Люди хотят помочь, тратят своё время, выдают возможные причины проблемы. И вот, через 4 дня, вопрошающий говорит "да ерунда все ваши предположения" и милостиво показывает уже не одну а 14 строк кода.
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Перестало работать Menu.Show
Shmuel, да ладно, это был . Про
Far.Show
и win.OutputDebugString
автор теста, видимо, не знает и самостоятельно найти баг не может.Перестало работать Menu.Show
Shmuel, Вообще-то 14 (хорошо что нумерация автоматическая, а то ещё невесть сколько бы потратили на подсчёт) строк - это было просто пояснение как решается эта проблема, а не багрепорт, если не догадались.
buniak_a_h, да не в этом дело. Просто не пришло в голову сначала, что запись в changelog плагина значит, что action() - это просто обобщенное название, и в ту функцию которую я писал начнут приходить левые параметры.
buniak_a_h, да не в этом дело. Просто не пришло в голову сначала, что запись в changelog плагина значит, что action() - это просто обобщенное название, и в ту функцию которую я писал начнут приходить левые параметры.
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Перестало работать Menu.Show
Вот и мне когда-то не пришло в голову. Потому и писал, что «нет в ченджлоге». Просто используя
far.Show
и win.OutputDebugString
я нашёл причину неработоспособности минут за 20. И уж на Menu.Show даже не подумал бы.-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Перестало работать Menu.Show
Ну да, как же, не догадался. Если вы не притворяетесь, то поясню, что под репортом имелось в виду ваше исходное сообщение. И оно включало в себя одну строку кода, без какого-то ни было контекста, что в принципе не позволяло понять, в чём может быть проблема.
"action" это вовсе не обобщённое название, а вполне буквальное - поле таблицы-аргумента функции Macro. Оно описано в документации. Если это поле переименовать, макросы не загрузятся.
Перестало работать Menu.Show
Shmuel, ну конечно, там даже решение проблемы приведено, куда уж там догадаться.
Про поле вообще смешно. Поля, насколько я знаю, записываются как table.field, без скобок. А со скобками пишут функции.
Так что спасибо вам в том числе за помощь.
Про поле вообще смешно. Поля, насколько я знаю, записываются как table.field, без скобок. А со скобками пишут функции.
Как видите, мне помогло, подтолкнув в нужном направлении.
Так что спасибо вам в том числе за помощь.
- zg
- zero-gravity
- Posts: 6038
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact: