创建一个将回调函数链接到事件的反应器。 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
有一个 AutoLISP 函数用于创建每种类型的反应器。这些函数与反应器类型同名,减去前导冒号。例如,创建一个数据库反应器,创建一个工具栏反应器,等等。除了对象反应器之外,反应器创建函数需要以下参数:vlr-acdb-reactorvlr-toolbar-reactor
例如,以下语句定义 DWG 编辑器反应器。反应器将调用 saveDrawingInfo 函数,以响应发出 SAVE 命令的用户: (vlr-dwg-Reactor nil '((:vlr-saveComplete . saveDrawingInfo))) 在此示例中,第一个参数为 nil,因为没有特定于应用程序的数据附加到此反应器。第二个参数是由虚线对列表组成的列表。每个虚线对列表标识要通知反应器的事件,以及为响应该事件而运行的回调函数。在这种情况下,反应器只收到一个事件的通知。:vlr-saveComplete 每次发出命令时,无论是在 AutoCAD 命令提示下、从用户界面元素还是从 AutoLISP 程序发出命令时,都会通知编辑器反应器。因此,此 DWG 反应器的回调函数需要精确确定它正在响应的内容。在当前示例中,只需检查“保存”命令。save-drawingInfo 每种反应器类型的可能事件列在反应堆构造函数的参考主题中,也可以使用以下命令获得。例如,要查找 DWG 反应器的可能事件列表,可以使用以下语句:vlr-reaction-names (vlr-reaction-names :VLR-DWG-Reactor) (:VLR-beginDwgOpen :VLR-endDwgOpen :VLR-dwgFileOpened :VLR-databaseConstructed :VLR-databaseToBeDestroyed :VLR-beginSave :VLR-saveComplete :VLR-beginClose) 注意:所有反应器构造函数都返回一个反应器对象。
|
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )
GMT+8, 2024-5-19 13:09
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.