找回密码
 注册
关于网站域名变更的通知
查看: 6945|回复: 53

【分享源代碼】建立動態選單/添加自定义菜单

  [复制链接]

该用户从未签到

发表于 2016-1-25 11:09 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

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

x
本帖最后由 XYX365 于 2016-1-25 13:42 编辑

如何把自己的菜单插入到allegro menu,使用動態選單

;filename:fDynamicMenus.il
;此程式只適用於Allegro v16.3以上
;必須直接加載到allegro.ilinit檔裡面,不能在其他地方載入此程式
;此程式可以設計成中英文語言的選單


; Load: load("fDynamicMenus.il")
;附件程式不包含選單上的任一程式工具

dm_v100

dm_v100


fDynamicMenus.rar (1.71 KB, 下载次数: 49)

该用户从未签到

 楼主| 发表于 2016-1-28 18:47 | 显示全部楼层
361553894 发表于 2016-1-28 13:14
15版本的菜单插入就不提供了

再確認一下,你的程式功能,
1.在Allegro.ilinit裡面加載 SkillMenu.il
2.開啟Allegro.exe
3.執行sm
4.這時候就加載你所設定的Menu(m1~m7),之後會重覆加載好幾次

這是因為下面的判斷問題
when(g_SkillMenuTimerNum>1
        if(isCallable('axlUIMenuFind) then
                if(axlUIMenuFind(nil,"wxGrids") then
                        axlUIWTimerRemove(g_SkillMenuTimerId)
                        g_SkillMenuTimerId='unbound
                        g_SkillMenuTimerNum='unbound
                        return(t);
                );if
        );if
);when


你的程式工作流程應該是這樣
1.執行sm後,
2.執行下列
     g_SkillMenuTimerId=nil
     g_SkillMenuTimerNum=0
     g_SkillMenuTimerId=axlUIWTimerAdd(nil,2000,nil,'wxSkillMenu_TimerCallBack)

3.時間等待2000後再執行wxSkillMenu()函數,
4.這時候就執行下面並執行好幾次
when(g_SkillMenuTimerNum>1
        if(isCallable('axlUIMenuFind) then
                if(axlUIMenuFind(nil,"wxGrids") then
                        axlUIWTimerRemove(g_SkillMenuTimerId)
                        g_SkillMenuTimerId='unbound
                        g_SkillMenuTimerNum='unbound
                        return(t);
                );if
        );if
);when


如果你只要加載一次的話,你修改成下面試試看,只留紅字部分
       if(boundp('g_SkillMenuTimerId) && boundp('g_SkillMenuTimerNum) then
                ;if(g_SkillMenuTimerNum>5 then
                ;        axlUIWTimerRemove(g_SkillMenuTimerId)
                ;        g_SkillMenuTimerId='unbound
                ;        g_SkillMenuTimerNum='unbound
                ;else
                ;        g_SkillMenuTimerNum++
                ;);if
                ;when(g_SkillMenuTimerNum>1
                ;        if(isCallable('axlUIMenuFind) then
                ;                if(axlUIMenuFind(nil,"wxGrids") then
                                        axlUIWTimerRemove(g_SkillMenuTimerId)
                                                g_SkillMenuTimerId='unbound
                                        g_SkillMenuTimerNum='unbound
                                        return(t);
                ;                );if
                ;        );if
                ;);when
        else

                g_SkillMenuTimerId=nil
                g_SkillMenuTimerNum=0
                g_SkillMenuTimerId=axlUIWTimerAdd(nil,2000,nil,'wxSkillMenu_TimerCallBack)
        );if

点评

试过了,加载不上,不知道哪个函数把加载上的菜单又清空了 估计他某个启动执行的函数有 axlUIMenuLoad(nil)这个指令  详情 回复 发表于 2016-1-29 09:01

该用户从未签到

发表于 2016-1-29 09:19 | 显示全部楼层
XYX365 发表于 2016-1-28 19:02
其實不用加入你貼的程式,也可以加載一次,就不會重覆好幾次,我猜原始作者應該有遇到過加載第一次失敗的問 ...

Skill > axlTriggerPrint
E- *Error* skillDev not enabled.
E-
ERROR
Skill > axlTriggerPrint()
E- *Error* skillDev not enabled.
E-
ERROR
Skill >
这个是什么原因呢?

点评

問題是你使用破解的Allegro.exe的原因  详情 回复 发表于 2016-1-29 09:22

该用户从未签到

发表于 2016-1-29 08:41 | 显示全部楼层
XYX365 发表于 2016-1-28 19:02
其實不用加入你貼的程式,也可以加載一次,就不會重覆好幾次,我猜原始作者應該有遇到過加載第一次失敗的問 ...

我之前有试过,只加载一次,发现会被刷掉,估计他其他的函数跟菜单加载有冲突
他这个目的是不是隔两秒检查一次菜单有没有存在,如果存在就跳出,否则就重新加载

点评

你是不是有加載EDA365 skill?  详情 回复 发表于 2016-1-29 09:06

该用户从未签到

发表于 2016-1-25 11:19 | 显示全部楼层
不错的功能
  • TA的每日心情
    奋斗
    2024-1-17 15:52
  • 签到天数: 237 天

    [LV.7]常住居民III

    发表于 2016-1-25 11:33 | 显示全部楼层
    看看先
    謝謝大大的分享喔

    该用户从未签到

    发表于 2016-1-28 08:54 | 显示全部楼层
    16版本用axlUIMenuInsert插入动态菜单
    15版本可以用axlUIMenuDump和axlUIMenuLoad插入
    不过不适用于中文

    该用户从未签到

    发表于 2016-1-28 08:57 | 显示全部楼层
    本帖最后由 361553894 于 2016-1-28 09:01 编辑

    大大帮我看下这段代码什么作用
    这是上个大神写的插入动态菜单的Skill
    每次开启软件,菜单都会刷新好几次,刷新过程中操作软件就很容易崩溃


    201601280900.jpg

    点评

    可否給完整的代碼?  详情 回复 发表于 2016-1-28 10:19
    我先確認看看  详情 回复 发表于 2016-1-28 09:39

    该用户从未签到

     楼主| 发表于 2016-1-28 09:39 | 显示全部楼层
    361553894 发表于 2016-1-28 08:57
    大大帮我看下这段代码什么作用
    这是上个大神写的插入动态菜单的Skill
    每次开启软件,菜单都会刷新好几次 ...

    我先確認看看

    该用户从未签到

    发表于 2016-1-28 09:57 | 显示全部楼层
    看看这个功能

    该用户从未签到

     楼主| 发表于 2016-1-28 10:19 | 显示全部楼层
    361553894 发表于 2016-1-28 08:57
    大大帮我看下这段代码什么作用
    这是上个大神写的插入动态菜单的Skill
    每次开启软件,菜单都会刷新好几次 ...

    可否給完整的代碼?

    点评

    15版本的菜单插入就不提供了  详情 回复 发表于 2016-1-28 13:14

    该用户从未签到

    发表于 2016-1-28 11:15 | 显示全部楼层
    不错的功能

    该用户从未签到

    发表于 2016-1-28 13:14 | 显示全部楼层
    XYX365 发表于 2016-1-28 10:19
    可否給完整的代碼?

    15版本的菜单插入就不提供了

    SkillMenu.zip

    3.39 KB, 阅读权限: 50, 下载次数: 1, 下载积分: 贡献 -30 , 威望 -10

    点评

    其實不用加入你貼的程式,也可以加載一次,就不會重覆好幾次,我猜原始作者應該有遇到過加載第一次失敗的問題  详情 回复 发表于 2016-1-28 19:02
    再確認一下,你的程式功能, 1.在Allegro.ilinit裡面加載 SkillMenu.il 2.開啟Allegro.exe 3.執行sm 4.這時候就加載你所設定的Menu(m1~m7),之後會重覆加載好幾次 這是因為下面的判斷問題 when(g_SkillMenuTime  详情 回复 发表于 2016-1-28 18:47

    该用户从未签到

     楼主| 发表于 2016-1-28 19:02 | 显示全部楼层
    361553894 发表于 2016-1-28 13:14
    15版本的菜单插入就不提供了

    其實不用加入你貼的程式,也可以加載一次,就不會重覆好幾次,我猜原始作者應該有遇到過加載第一次失敗的問題

    点评

    Skill > axlTriggerPrint E- *Error* skillDev not enabled. E- ERROR Skill > axlTriggerPrint() E- *Error* skillDev not enabled. E- ERROR Skill > 这个是什么原因呢?  详情 回复 发表于 2016-1-29 09:19
    我之前有试过,只加载一次,发现会被刷掉,估计他其他的函数跟菜单加载有冲突 他这个目的是不是隔两秒检查一次菜单有没有存在,如果存在就跳出,否则就重新加载  详情 回复 发表于 2016-1-29 08:41

    该用户从未签到

    发表于 2016-1-29 09:01 | 显示全部楼层
    XYX365 发表于 2016-1-28 18:47
    再確認一下,你的程式功能,
    1.在Allegro.ilinit裡面加載 SkillMenu.il
    2.開啟Allegro.exe

    试过了,加载不上,不知道哪个函数把加载上的菜单又清空了
    估计他某个启动执行的函数有
    axlUIMenuLoad(nil)这个指令

    点评

    你可以試試看,只加載skillMenu.il,並多執行幾次試試看,原因有可以其他函數使用到axlUIWTimerAdd  详情 回复 发表于 2016-1-29 09:25

    该用户从未签到

     楼主| 发表于 2016-1-29 09:06 | 显示全部楼层
    361553894 发表于 2016-1-29 08:41
    我之前有试过,只加载一次,发现会被刷掉,估计他其他的函数跟菜单加载有冲突
    他这个目的是不是隔两秒检 ...

    你是不是有加載EDA365 skill?

    点评

    这个和EDA365 Skill 在一起就冲突 就会出现重复菜单有什么好的解决的办法么  详情 回复 发表于 2021-2-2 11:42
    这个和EDA365 Skill 在一起就冲突 就会出现重复菜单有什么好的解决的办法么  发表于 2021-2-2 11:41
    没有,所有加载的菜单都在这了  详情 回复 发表于 2016-1-29 09:19
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-20 09:17 , Processed in 0.156250 second(s), 28 queries , Gzip On.

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

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

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