明经通道 发表于 2012-12-28 20:41:45

第十二章 反应器和回调函数 (五) 检验和查询反应器

检验反应器

可以使用 VLISP 的检验工具检查反应器。例如,使用对象反应器中定义的对象反应器将返回到变量 circleReactor 中。如果打开该变量的“检验”窗口,VLISP 将显示如下信息:

“检验”窗口中列出的条目如下:
该反应器的所有者对象
事件和与之相关联的回调函数
    ■该反应器是否是活动的:
      ●如果是活动的,added-p 为 T,否则它为 nil。

附着到反应器上的用户数据
    ■触发该反应器的文档范围:
      ●如果为 0,它仅在创建它的图形文档中触发;
      ●如果为 1,它可响应任何文档中的相关事件;
      ●详细信息请参见在多重名称空间中使用反应器。

双击以 {Owners} 开头的条目,可查看所有者对象列表:

双击列表条目可获取对应所有者的详细信息。

查询反应器

VLISP 还提供了可在应用程序里或控制台提示处查看反应器定义的函数:

vlr-type 返回指定反应器的类型,例如:
$ (vlr-type circleReactor)
:VLR-Object-Reactor

vlr-current-reaction-name 返回触发回调函数的事件名称。

vlr-data 返回附着到反应器的特定应用程序数据,例如:
$ (vlr-data circleReactor)
"Circle Reactor"
可用该数据区分触发同一个回调函数的多个反应器。

vlr-owners 返回向某对象反应器发出通报的 AutoCAD 图形中的对象(反应器所有者)列表,下述函数调用将列出 circleReactor 的所有者:
_$ (vlr-owners circleReactor)
(#<VLA-OBJECT IAcadCircle 03ad077c>)

vlr-reactions 返回指定反应器的回调条件-回调函数列表,下例将返回 circleReactor 的相关信息:
$ (vlr-reactions circleReactor)
((:vlr-modified . PRINT-RADIUS))


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 明经通道的微博

linshiyin2 发表于 2012-12-29 08:42:27

昨晚新鲜出炉的,我来坐沙发。

zyhandw 发表于 2012-12-29 09:35:27

楼主辛苦,向你致敬!顺便坐个板凳,也不错!

微博评论 发表于 2012-12-29 10:45:00

留看

http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 来自 娱六月明 的新浪微博

微博评论 发表于 2012-12-29 10:45:00

感谢分享

http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 来自 娱六月明 的新浪微博

smartstar 发表于 2012-12-29 13:10:37

老大辛苦了。
页: [1]
查看完整版本: 第十二章 反应器和回调函数 (五) 检验和查询反应器