找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 1920|回复: 17
打印 上一主题 下一主题

『原创』关于加载菜单的几种方式——请@deargds帮忙审核下

[复制链接]

13

主题

44

帖子

1057

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1057
跳转到指定楼层
1#
发表于 2013-7-21 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 whh5118 于 2013-7-21 15:11 编辑

实现目标:在help后面添加一个菜单,放自己的函数。
实现方式:帖子所述
目前进程:完成1,2。3,4调试不出。

SKILL看了一些关于加载自己菜单的方式,这里总结下思路:(我用的是16.3)
方式一:在.men文件下手动进行修改。
    这个群里有很多,本人已验证,这里略。
方式二:通过axlUIMenuDump() axlUIMenuLoad()加载
    这种方式是将当前的菜单通过axlUIMenuDump()函数读取,存放在一个临时文件中,文件操作,将自己的菜单添加到这个临时文件中,然后通过axlUIMenuLoad()函数,加载这个临时文件。
    这种方式其实感觉更第一种方式差不多。本人已验证,可行。
方式三:通过axlUIMenuFind()axlUIMenuInsert()加载
    这种方式通过axlUIMenuFind找到自己想要添加的菜单位置,axlUIMenuInsert()添加菜单。
    我暂时出不来,不知道哪里出问题
方式四:通过axlUIMenuRegister()加载
    这种方式通过axlUIMenuRegister()直接进行添加。
    我暂时出不来,不知道哪里出问题


@deargds版主帮我看下,这个思路是不是对的?


调试进程描述:方式三与方式四都是编译成功的,但是执行就是挑不出菜单,@deargds版主能帮我找下原因吗?
menu.il文件我都看了,就是出不来。

方式三代码:
SKILLToolsMenu = '(
     (popup "SKILL Tools")
     ("test"                        "TEST")
)
defun(MikecMenuTrig ()
        let( (q)
        q = axlUIMenuFind(nil -1)
        res = axlUIMenuInsert(q SKILLToolsMenu)
        )
)
axlTriggerSet('menu  'MikecMenuTrig)

方式四代码:
defun(MikecMenuTrig ()
        let( (q)
        q = axlUIMenuRegister( -1 SKILLToolsMenu )
        )
)

点评

支持!: 5.0
支持!: 5
  发表于 2013-7-22 21:01
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏6 支持!支持! 反对!反对!1

28

主题

182

帖子

619

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
619
推荐
发表于 2017-10-31 18:09 | 只看该作者
我近期也遇到了这样的问题,阅读版主的解释后,立刻神清气爽,全身筋脉通畅,谢谢版主指点。

28

主题

2345

帖子

8894

积分

六级会员(60)

Rank: 6Rank: 6

积分
8894
推荐
发表于 2014-9-13 15:40 | 只看该作者
请问楼主,在16.3上成功了么?我的在16.5上可以,但是在16.3上不行
又累又out...............

12

主题

143

帖子

270

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
270
推荐
发表于 2018-2-6 15:52 | 只看该作者
这个可以有啊!很好!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

13

主题

44

帖子

1057

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1057
2#
 楼主| 发表于 2013-7-21 15:12 | 只看该作者
沙发自己的。。。

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
3#
发表于 2013-7-22 08:16 | 只看该作者
本帖最后由 XYX365 于 2013-7-26 16:02 编辑

方法三必須直接將menu.il加載到allegro.ilinit裡面,重新開起allegro就會有你加入的menu選項

方法四改用下列完整的代碼,再直接加載到allegro.ilinit裡面,重新開起allegro就會有你加入的menu選項
  1. SKILLToolsMenu = '(
  2.      (popup "SKILL Tools")
  3.      ("test"                        "TEST")
  4. )

  5. defun(MikecMenuTrig (tArge)
  6.         let( (q)
  7.         q = axlUIMenuRegister( -1 SKILLToolsMenu )
  8.         )
  9. )

  10. MikecMenuTrig()
复制代码

点评

支持!: 5.0
支持!: 5
  发表于 2013-7-26 14:28

13

主题

44

帖子

1057

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1057
4#
 楼主| 发表于 2013-7-22 08:39 | 只看该作者
XYX365 发表于 2013-7-22 08:16
方法三必須直接將menu.il加載到allegro.ilinit裡面,重新開起allegro就會有你加入的menu選項

方法四改用下 ...

谢谢了。我一直在.il文件里弄,load半天也出不来。原来是要在allegro.ilinit里加载。呵呵。

97

主题

314

帖子

670

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
670
5#
发表于 2013-7-25 10:27 | 只看该作者
XYX365 发表于 2013-7-22 08:16
方法三必須直接將menu.il加載到allegro.ilinit裡面,重新開起allegro就會有你加入的menu選項

方法四改用下 ...

请问下二级菜单如何设置啊,就像楼上TEST菜单我再弄个子菜单,请问下如何操作。谢谢!
~

53

主题

647

帖子

1460

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1460
6#
发表于 2013-7-25 11:22 | 只看该作者
NXX的人啊...

8

主题

55

帖子

1370

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1370
7#
发表于 2013-7-25 14:13 | 只看该作者
XYX365 发表于 2013-7-22 08:16
方法三必須直接將menu.il加載到allegro.ilinit裡面,重新開起allegro就會有你加入的menu選項

方法四改用下 ...

请问,如何在不重启allegro的情况下调用到新的菜单?
类似于点击菜单命令后,出现新的二级菜单可以点击

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

8#
发表于 2013-7-26 11:34 | 只看该作者
下面只针对Allegro启动时加载菜单问题说明,调试时直接调用函数名加载都没有问题.

第三种方法,问题出在回调函数上面
axlTriggerSet('menu 'XXX)
这里的XXX函数需要一个参数,  MikecMenuTrig (arg)
  1. SKILLToolsMenu = '(
  2.      (popup "SKILL Tools")
  3.      ("test"                        "TEST")
  4. )
  5. defun(MikecMenuTrig (arg)
  6.         let( (q)
  7.         q = axlUIMenuFind(nil -1)
  8.         res = axlUIMenuInsert(q SKILLToolsMenu)
  9.         )
  10. )
  11. axlTriggerSet('menu  'MikecMenuTrig)
复制代码
第四种方法,需要在加载完函数后进行调用
后面增加MikecMenuTrig()
谁画出这天地 又画下我和你

97

主题

314

帖子

670

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
670
9#
发表于 2013-7-30 17:52 | 只看该作者
deargds 发表于 2013-7-26 11:34
下面只针对Allegro启动时加载菜单问题说明,调试时直接调用函数名加载都没有问题.

第三种方法,问题出在回 ...

版主二级菜单要怎样的格式啊?
~

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
10#
发表于 2013-8-6 12:23 | 只看该作者
lyh289114980 发表于 2013-7-30 17:52
版主二级菜单要怎样的格式啊?
  1. SKILLToolsMenu = '(
  2.      (popup "SKILL Tools")
  3.      ("test"                        "TEST")
  4.      (separator)
  5.      (popup "Sub tools")
  6.         ("test1"    "TEST1")
  7.      (end)
  8. )
  9. defun(MikecMenuTrig (arg)
  10.         let( (q)
  11.         q = axlUIMenuFind(nil -1)
  12.         res = axlUIMenuInsert(q SKILLToolsMenu)
  13.         )
  14. )
  15. axlTriggerSet('menu  'MikecMenuTrig)
复制代码

点评

支持!: 5.0
支持!: 5
  发表于 2013-8-9 13:29

9

主题

264

帖子

685

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
685
12#
发表于 2014-9-13 17:10 | 只看该作者
靠,明明要支持的,结果点了反对,不好意思

41

主题

234

帖子

1569

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1569
13#
发表于 2016-11-2 07:52 | 只看该作者
谢谢分享

10

主题

379

帖子

4169

积分

五级会员(50)

Rank: 5

积分
4169
14#
发表于 2016-11-19 02:44 | 只看该作者
谢谢分享

7

主题

351

帖子

348

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
348
15#
发表于 2017-6-8 20:30 | 只看该作者
学习学习。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-22 04:00 , Processed in 0.092129 second(s), 43 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表