在反应器回调中,硬编码字符串作为参数传递给。但是其他时间被调用呢?"ActiveX"gp:Calculate-and-Draw-TilesObjectCreationStylegp:Calculate-and-Draw-Tiles
如果你还记得第 4 课,有人指出,每当你更改存根函数时,你需要问以下问题:
- 函数调用(调用)是否已更改?也就是说,该函数是否仍然采用相同数量的参数?
- 该函数是否返回不同的东西?
在构建、优化和更新应用程序时,每当对工作函数进行重大更改时,都需要提出相同的问题。在这种情况下,您需要在项目中查找调用的任何其他函数。Visual LISP 有一个特性可以帮助你做到这一点。gp:Calculate-and-Draw-Tiles
查找项目中对 gp:计算和绘制磁贴的所有调用
- 在 Visual LISP 文本编辑器窗口中,双击gpdraw.lsp文件中的单词。gp:Calculate-and-Draw-Tiles
- 单击“Visual LISP”菜单中的“搜索查找”。
由于您预先选择了函数名称,因此它已作为要搜索的字符串列出。
- 选择“查找”对话框中“搜索”下列出的“项目”按钮。
选择此选项时,“查找”对话框将在底部展开,您可以选择要搜索的项目。
- 指定当前项目名称,然后单击“查找”按钮。
Visual LISP 在“查找输出”窗口中显示结果:
- 查看“查找输出”窗口中的结果,并确定代码中是否有任何其他位置可以调用。应该只有一个:gpmain.lsp 中的一个位置。gp:Calculate-and-Draw-Tiles
- 在“查找输出”窗口中,双击代码调用行。gp:Calculate-and-Draw-Tiles
Visual LISP 激活一个文本编辑器窗口,并将您直接带到gpmain.ls sp 中的那行代码。代码当前如下所示:
(setq tilelist (gp:Calculate-and-Draw-Tiles gp_PathData))
- 将代码行替换为以下内容:
(setq tilelist (gp:Calculate-and-Draw-Tiles gp_PathData nil))
为什么?再看一下伪代码:nil
If ObjectCreationStyle is nil, assign it from the BoundaryData.
作为参数传递,使该函数检查用户对如何绘制磁贴的选择(由对话框选择确定并存储在其中)。但是,来自命令结束反应器回调的后续调用将通过强制使用 ActiveX 来覆盖此行为。nilgp:Calculate-and-Draw-Tilesgp_PathData
祝贺!您现在已具备基本的反应器功能。如果您愿意,可以将gpmain.lsp 和 gpdraw.lsp文件从Tutorial\VisualLISP\Lesson7复制到您的工作目录中,并检查已完成的调试代码。
还有很多工作要做,这一切都是从函数中的这段代码片段触发的:gp:Command-ended
(setq NewReactorData
(gp:RedefinePolyBorder CurrentPoints reactorData)
) ;_ end of setq
|