找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

axlUIPopupDefine问题请教下版主

[复制链接]

57

主题

181

帖子

2349

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
本帖最后由 yneda 于 2013-11-5 16:16 编辑

版主你好!
有个问题请教下,我想做这样一个操作,运行skill后,进入到框选状态,框选完后对框选后的目标进行处理,处理完后,再进入到下次框选状态,直到右键cancel后,结束退出。如下代码,不知道如何能实现,谢谢!


procedure( test()
    let((mypopup dbid_symbol)
         if(axlOKToProceed() then
            axlClearSelSet()
            axlSetFindFilter(?enabled '("NOALL" "SYMBOLS") ?onButtons '("SYMBOLS"))
            
             mypopup = axlUIPopupDefine(nil list(list("Done" 'axlFinishEnterFun) list("Cancel" 'axlCancelEnterFun))
             axlUIPopupSet(mypopup)

               
             dbid_symbol = axlSingleSelectBox()
               
              if(dbid_symbol then
                   fun1() ;运行完后,如再这里调用test()则会进入死循环,除非框选为nil,否则中止不了。
               else
                   fun2() ;如果框选目标为nil,再调用test()和上面的情况差不多。
                  )
          else
           axlUIConfirm("Finish current command first.")
          )


);end let

);end procedure
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

2#
发表于 2013-11-6 13:16 | 只看该作者
参考
  1. procedure( test()
  2. let((mypopup dbid_symbol)
  3.         if(axlOKToProceed() then
  4.                 axlClearSelSet()
  5.                 axlSetFindFilter(?enabled '("NOALL" "SYMBOLS") ?onButtons '("SYMBOLS"))
  6.                 mypopup = axlUIPopupDefine(nil list(list("Done" 'test_done) list("Cancel" 'test_cancel)))
  7.                 axlUIPopupSet(mypopup)
  8.                 stop = t
  9.                 while(stop
  10.                         axlClearSelSet()
  11.                         dbid_symbol = axlGetSelSet(axlSingleSelectBox())
  12.                         if(dbid_symbol then
  13.                                 axlHighlightObject(dbid_symbol t)
  14.                                 println(dbid_symbol~>name)
  15.                         else
  16.                                 println(dbid_symbol~>name)
  17.                         )
  18.                 )
  19.                 axlUIPopupSet(nil)
  20.         else
  21.                 axlUIConfirm("Finish current command first.")
  22.         )
  23. );end let
  24. );end procedure

  25. procedure( test_done()
  26. let(()
  27.         stop = nil
  28.         axlFinishEnterFun()
  29. )
  30. )

  31. procedure( test_cancel()
  32. let(()
  33.         stop = nil
  34.         axlCancelEnterFun()
  35. )
  36. )
复制代码
谁画出这天地 又画下我和你

57

主题

181

帖子

2349

积分

四级会员(40)

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

积分
2349
3#
 楼主| 发表于 2013-11-6 14:30 | 只看该作者
谢谢版主指点,非常给力,我测试了下,好的很。谢谢!
针对这,还有一个问题请教下,如果注册一个命令来运行test这个命令没问题,但如果直接调用test()这个函数却有问题,不能中止,不知道是什么原因。

调用方法一(没问题):
;;
axlCmdRegister( "test" 'test)

;;点击check button来掉调用

( "Field_check"
       axlShell("test")
)


调用方法二(不能中止):
;;


;;点击check button来掉调用

( "Field_check"
       test()
)

;;
procedure( test()
......
)

117

主题

2352

帖子

1万

积分

EDA365特邀版主

Rank: 6Rank: 6

积分
13799

最佳敬业奖

4#
发表于 2013-11-6 16:16 | 只看该作者
yneda 发表于 2013-11-6 14:30
谢谢版主指点,非常给力,我测试了下,好的很。谢谢!
针对这,还有一个问题请教下,如果注册一个命令来运 ...

需要右键菜单执行Done,或Cancel时才会中止,中止条件为
stop = nil,确认是否满足。
谁画出这天地 又画下我和你

0

主题

140

帖子

371

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
371
5#
发表于 2017-5-23 14:29 | 只看该作者
收下学习了,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-26 10:33 , Processed in 0.062620 second(s), 33 queries , Gzip On.

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

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

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