EDA365电子工程师网

标题: 自定义菜单重复加载 [打印本页]

作者: eeliujm    时间: 2016-11-21 15:31
标题: 自定义菜单重复加载

我是新建了一个 menu.il ,再在allegro.ilinit 中加载的
下面是menu.il最后几行代码
  1.         let( (q)
  2.         q = axlUIMenuFind(nil -1)
  3.         res = axlUIMenuInsert(q SKILLToolsMenu)))
  4. axlTriggerSet('menu  'toolmenucreat)
复制代码
不知道是不是安装了EDA365 SKILL的缘故,打开ALLEGRO后,菜单先是瞬间在help左边出现,
过了一会EDA365 SKILL加载完了,菜单就又加载了一次,在 EDA365 SKILL的右边
导致出现两个一模一样的菜单,我按照下面链接的帖子修改过,但还是一直不成功,怎么破T^T
https://www.eda365.com/thread-117180-1-1.html

作者: eeliujm    时间: 2016-11-23 14:30
求指教~~
作者: deargds    时间: 2016-11-30 09:05
EDA365 SKILL考虑兼容15.X版本使用了axlUIMenuLoad, 这个函数会激活axlTriggerSet('menu  'toolmenucreat)
作者: eeliujm    时间: 2016-11-30 09:52
deargds 发表于 2016-11-30 09:05
EDA365 SKILL考虑兼容15.X版本使用了axlUIMenuLoad, 这个函数会激活axlTriggerSet('menu  'toolmenucreat)

那有没有办法让它不要再次加载呀?
我参考XYX365的方法加了个判断语句,但加了后菜单反而加载不了了
  1. procedure(fnDynamicMenusTrig(tMenuFile)
  2.         let((xMenuID)
  3.                 when(tMenuFile == "allegro" ;只判斷第一次載入及執行,如果沒有此判斷的話,有其他程式也是使用動態選單時,就會再加載一次
  4.                         xMenuID = axlUIMenuFind(nil -1)
  5.                         axlUIMenuInsert(xMenuID lSkillMenu)
  6.                 )
  7.         )
  8. )
复制代码



作者: deargds    时间: 2016-11-30 11:00
eeliujm 发表于 2016-11-30 09:52
那有没有办法让它不要再次加载呀?
我参考XYX365的方法加了个判断语句,但加了后菜单反而加载不了了

可以贴下你添加后的部分代码看下

作者: eeliujm    时间: 2016-11-30 13:28
deargds 发表于 2016-11-30 11:00
可以贴下你添加后的部分代码看下
  1. defun(toolmenucreat (arg)
  2. SKILLToolsMenu = '(
  3.      (popup "Skill")
  4.          )

  5. procedure(toolmenucreat(tMenuFile)
  6.         let((xMenuID)
  7.                 when(tMenuFile == "allegro" ;只判斷第一次載入及執行,如果沒有此判斷的話,有其他程式也是使用動態選單時,就會再加載一次
  8.                         xMenuID = axlUIMenuFind(nil -1)
  9.                         axlUIMenuInsert(xMenuID SKILLToolsMenu)
  10.                 )
  11.         )
  12. )
  13. )
  14. axlTriggerSet('menu  'toolmenucreat)
复制代码
改成这样后菜单就没有了~谢谢~


作者: deargds    时间: 2016-11-30 13:48
本帖最后由 deargds 于 2016-11-30 13:49 编辑
eeliujm 发表于 2016-11-30 13:28
改成这样后菜单就没有了~谢谢~
  1. procedure(toolmenucreat(tMenuFile)
  2. let((xMenuID)
  3.         SKILLToolsMenu = '(
  4.                 (popup "Skill")
  5.         )
  6.         when(tMenuFile == "allegro" ;只判斷第一次載入及執行,如果沒有此判斷的話,有其他程式也是使用動態選單時,就會再加載一次
  7.                 xMenuID = axlUIMenuFind(nil -1)
  8.                 axlUIMenuInsert(xMenuID SKILLToolsMenu)
  9.         )
  10. )
  11. )
  12. axlTriggerSet('menu  'toolmenucreat)
复制代码


作者: eeliujm    时间: 2016-11-30 14:15
deargds 发表于 2016-11-30 13:48

还是不行

作者: deargds    时间: 2016-11-30 15:07
16.6测试通过,可以粘贴到allegro.ilinit中测试下
作者: wcjcn    时间: 2017-6-9 23:16
学习学习。。。。。。。
作者: chengke07    时间: 2017-8-23 11:58
我也遇到同样的问题,,不过我的两个菜单,,一个中文正常显示一个是乱码的,。请问你这问题现在解决了吗
作者: eeliujm    时间: 2017-8-25 17:15
chengke07 发表于 2017-8-23 11:58
我也遇到同样的问题,,不过我的两个菜单,,一个中文正常显示一个是乱码的,。请问你这问题现在解决了吗

解决了,参考7楼的代码就OK了





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2