请注意,entdel可以擦除和取消擦除图元(因为该函数只是切换图元的擦除标志;设置了擦除标志的图元仅在图形关闭时丢失)。
考虑以下示例:
- ([color=BLUE]defun[/color] c:test ( [color=BLUE]/[/color] ext lst sel )
- ([color=BLUE]while[/color] ([color=BLUE]null[/color] ext)
- ([color=BLUE]setvar[/color] 'errno 0)
- ([color=BLUE]if[/color] lst ([color=BLUE]initget[/color] [color=MAROON]"Undo"[/color]))
- ([color=BLUE]setq[/color] sel ([color=BLUE]entsel[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nPick Object to Erase"[/color] ([color=BLUE]if[/color] lst [color=MAROON]" [undo]: "[/color] [color=MAROON]": "[/color]))))
- ([color=BLUE]cond[/color]
- ( ([color=BLUE]=[/color] 7 ([color=BLUE]getvar[/color] 'errno))
- ([color=BLUE]princ[/color] [color=MAROON]"\nMissed, try again."[/color])
- )
- ( ([color=BLUE]=[/color] [color=MAROON]"Undo"[/color] sel)
- ([color=BLUE]if[/color] lst
- ([color=BLUE]progn[/color]
- ([color=BLUE]entdel[/color] ([color=BLUE]car[/color] lst))
- ([color=BLUE]setq[/color] lst ([color=BLUE]cdr[/color] lst))
- )
- )
- )
- ( ([color=BLUE]=[/color] 'ename ([color=BLUE]type[/color] ([color=BLUE]car[/color] sel)))
- ([color=BLUE]setq[/color] lst ([color=BLUE]cons[/color] ([color=BLUE]car[/color] sel) lst))
- ([color=BLUE]entdel[/color] ([color=BLUE]car[/color] sel))
- )
- ( ([color=BLUE]setq[/color] ext [color=BLUE]t[/color]) )
- )
- )
- ([color=BLUE]princ[/color])
- )
|