接一楼: 以上共提供了 7 个函数,以下是参数和全局变量的具体用法: 1. lt:error-init 本函数共 1 个参数,参数为表,但表中包含三个元素 元素1: 包含系统变量及其值的列表,程序在初始时将系统变量依次设置为对应 值。 格式为: '(变量1 变量值1 变量2 变量值2 变量3 变量值3 ... 变量n 变量值n) 比如: '("cmdecho" 0 "osmode" 0 "cecolor" "1") 中途设置的变量为了确保能够在出错后恢复,可以使用 lt:sysvar-set 函数, 后面我们再详细说明。 元素2: UNDO 的设置
nil--->不做任何操作 0----->放置 UNDO 的 BEGIN 和 END 标志 这样确保程序结束时,用户可通过 U 命令,一次取消该操作 1或T-->放置 UNDO 的 BEGIN 和 END 标志,但出错时 UNDO 回操作前状态 这样确保程序结束时,用户可通过 U 命令,一次取消该操作 而且,出错后,程序自动执行(command "undo" 1)的操作 元素3: 出错时执行的特殊操作。为任意表达式,但以表的方式传递。 所以表达式之前要加一个 ' 符号。 我们通常会需要在程序出错后,执行其他的任何表达式的操作。 比如:redraw 函数亮显某图元。出错后 UNDO 的设置无法正常恢复显示。 所以我们可以设置此元素为: '(if en (redraw en 4)) 对于多个操作可用 progn 函数连接。 如:'(progn (if en (redraw en 4)) (if en2 (entdel en2)) ) 全局变量: $lt-alive$ 记录执行 lt:error-init lt:error lt:error-restore 的执行情况 如 $lt-alive$=1 说明已经执行了一次 lt:error-init 函数,并且尚未执行 lt:error-restore 恢复操作。 这个时候,如果用户再次 执行 lt:error-init ,lt:error-init会自动判别情况,先恢复已经记录 在 $lt-error$ 变量里的相关操作后,将 $lt-alive$ 变量归零。再执行 lt:error-init 设置。 $lt-error$ lt:error-init 通过 $lt-error$ 变量将出错的相关恢复要求传递给 lt:error 和lt:error-restore 并将执行过的内容依次删除。 ;;;------------------------------待续 |