Тема: Не работает меню

Создал собственное меню, состоящее только из панелей инструментов.
Файл - kpd.mnu
В сокращенном виде примерно такого содержания:

***TOOLBARS
**КПД
[_Toolbar("КПД", _Floating, _Show, 100, 100, 1)]
[_Flyout("КПД_Настройки", ICON.bmp, ICON.bmp, _OtherIcon, Kpd.КПД_Настройки)]
[_Flyout("КПД_Общие", ICON.bmp, ICON.bmp, _OtherIcon, Kpd.КПД_Общие)]
**КПД_Настройки
[_Toolbar("КПД Настройки", _Floating, _Show, 100, 150, 1)]
[_Button("Настройки текста", "AutoTxt.bmp", "AutoTxt.bmp")]^C^C(AutoTxt)
[_Button("Настройки слоев", "AutoLay.bmp", "AutoLay.bmp")]^C^C(AutoLay)
[_Button("Автозапуск", "StartUp.bmp", "StartUp.bmp")]^C^C(StartUp)
**КПД_Общие
[_Toolbar("КПД Общие", _Floating, _Show, 100, 200, 1)]
[_Button("Позиции", "Poz.bmp", "Poz.bmp")]^C^CPoz
[_Button("Изменить текст", "CText.bmp", "CText.bmp")]^C^CCText
[_Button("Редактировать текст", "EText.bmp", "EText.bmp")]^C^CEText

Первая панель должна вызывать две другие как выпадающие из нее.
Файл kpd.mnu разместил в отдельной папке - вместе с нужными *.bmp.
Путь к папке прописан в Options -> Files -> Support File Search Path.
После выполнения команды _menuload все три панели появляются на экране.
Вторые две панели работают нормально, иконки видны.
Но первая панель не работает:
Вместо иконок - смайлики. А при нажатии на кнопку этой панели вместо появления выпадающей появляется сообщение:
"No toolbar is associated with this flyout button.
Right-click on this button and select Customize... ... ..."
- ну в общем предлагается установить связь с выпадающими панелями вручную.
Вопрос: где я ошибся в синтаксисе описания панелей?
Причем то же самое меню, но внедренное непосредственно в acad.mnu, работает без проблем (только kpd. ... там заменено на acad. ...).

Re: Не работает меню

***MENUGROUP=Kpd
Пропиши в самом начале файла меню
[_Flyout("КПД_Настройки",
<тут я прописываю первую БМПешку и тулбара
у тебя будет - AutoTxt.bmp
>
AutoTxt.bmp, AutoTxt.bmp, _OtherIcon, Kpd.КПД_Настройки)]

Re: Не работает меню

Ну и установите связь вручную, настройте, все что надо, скройте лишние панели. Результат получите в файле MNS. Переименовывайте его в MNU и пользуйте на здоровье.

Re: Не работает меню

Заработало! Помогло ***MENUGROUP=Kpd
Но прописывать БМПшку в лоб необязательно. Если ее прописать, то она там всегда и будет торчать одна и та же. А мне нужно чтоб иконки менялись. Впрочем не уверен, не пробовал.
Спасибо!

Re: Не работает меню

Иконки будут меняться по последней вызванной при OTHERICON

Re: Не работает меню

> VK
Мне не нужно вручную, нужно было с синтаксисом разобраться.
Оказалось все просто - MENUGROUP!!
Вдобавок в *.mns автоматом много лишнего мусора прописывается, все равно потом ручками вычищать.

Re: Не работает меню

> Геннадий aka PG
А зачем тогда прописывать БМПшку, если иконки в любом случае меняются?

Re: Не работает меню

> Pilot
Неуверен, может и не надо, но если OtherIcon заменить на (непомню на что) будет всегда одна и таже БМПешка
Где-то это уже обсуждалось...

Re: Не работает меню

https://www.caduser.ru/forum/topic1048.html
вот тут про иконки

Re: Не работает меню

> Геннадий aka PG
Не поленился и попробовал указать конкретную БМПшку. Никакой разницы.
Я-то сперва подумал, что при загрузке Акада эта самая указанная иконка и будет появляться. А меняться , будет только потом, после обращения к дочерней выпадающей панели. Оказалось, что это не так. Видимо, есть смысл прописывать конкретную иконку только в совокупности с _OwnIcon.

Re: Не работает меню

А желтые ехидно смеющиеся рожицы-то пропали?

Re: Не работает меню

После того как записал
***MENUGROUP=Kpd
рожицы пропали в обоих случаях - вне зависимости от того, прописана конкретная иконка или нет.

Re: Не работает меню

Век живи, век -учись и дураком помрешь :))
Это я про себя :((

Re: Не работает меню

Теперь продолжение:
Написал лисп для автоматической подгрузки группы меню.
(command "_menuload" ...)
Так вот:
Если меню еще НЕ подгружено, то все работает нормально.
Если меню уже подгружено то при повторной подгрузке ругается - говорит, файла найти не могу (??). А повторная нужна после установки новой версии группы меню.
Тогда сделал так:
(command "_menuunload" ...)
(command "_menuload" ...)
Теперь все работает, но согласитесь - не слишком красиво.
Вопрос: В какой переменной Акада хранится информация о подгруженных группах меню?
Но если эта инфа хранится в реестре - то это уже хуже.

Re: Не работает меню

> Pilot
Вот примерный код определения загруженного меню...

;;;This routine checks for and loads the ACADVBA.MNU preview menu.
(defun vbamenu()
  (if (not (menugroup "ACADVBA"))
    (if (findfile "acadvba.arx")        
      (progn
        (if (findfile "acadvba.mnu")    
          (progn
            (command "_menuload" "acadvba")
            (menucmd "P7=+ACADVBA.POP1")
            (prompt "\nМеню AutoCAD VBA установлено.\n")
          )
          (prompt "\nФайл ACADVBA.MNU не найден.")
        )
      )
      (prompt "\nФайл ACADVBA.ARX не найден.")
    )
  ); группа меню ACADVBA уже установлена
)
(vbamenu)

Re: Не работает меню

Отлично!
(menugroup ...
для меня достаточно.

Re: Не работает меню

Что можно сделать???
Менюшка работала нормально, с использованием _OtherIcon после изменения на _OwnIcon, хотелось закрепить BMPешку, вместо кнопки получился вопросительный знак.