SuperStainless wrote: ↑Wed 22 Apr, 2020 16:19
I also meant menus in separate files: would be useful because you can compile the menu only one time and use it in different places.
Некоторые отвечали, что подменю, описанные в других файлах, ФАРом не поддерживаются. Как оказалось, поддерживается (функция mf.usermenu). Ниже привожу пункт "стандартного" меню, вызывающий "вложенное" пользовательское меню, описанное в другом файле, а также скрипт (ивент), "затеняющий" пункт стандартного меню в случае отсутствия такого файла.
Три замечания.
1. Хотя порядок не имеет значения, но лично мне удобно, чтоб этот пункт был первым. Ну, логично: локальное меню вызывается чаще…
2. Название этого пункта меню должно быть как-то формализовано, чтоб скрипт его "узнавал". Для себя я выбрал следующий стандарт: в заголовке пункта меню должно присутствовать имя файла в кавычках. Естественно, не должно быть пунктов, содержащих строку «File_name.ext».
3. Приведённый скрипт только дизейблит пункт меню; если заменить в нём LIF_DISABLE на LIF_HIDDEN, то такие пункты меню будут совсем скрыты. Но тогда надо бы пересчитать размеры рамки и всего диалога; я не стал париться.