断断续续,编写过程中,做个笔记先... - ;key1动作反应
- (defun key1 (/ n a a1 lstn)
- (setq n (atoi (get_tile "key1"));取得当前选中项的索引值n
- a (nth n boxlst);从列表框中取出第n个表项:"+D分类四"
- a1 (substr a 2);分割(substr "+D分类四" 2)=>"D分类四"
- )
- (setq lstn (vl-remove-if '(lambda (x) (/= (strlen (car x)) 2)) lst));取出所有中类组成lstn,即字符长度为2的项目
- (setq lstn (vl-remove-if '(lambda (x) (/= (substr (car x) 1 1) (substr a1 1 1))) lstn));取出对应的中类,即首字为D的项目
- (setq lstn (mapcar '(lambda(x) (strcat "++" (car x) (cadr x))) lstn));组成准备插入列表框的表lstn
- ;如果"a"以+开头:
- ;插入lstn到原表并刷新显示.
- ;否则删除列表后刷新显示.
- (if (= (substr a 1 1) "+")
- (progn
- (setq boxlst (LI_DelLst boxlst n)
- ; boxlst (LI_AddList boxlst n lstn)
- boxlst (LI_AddList boxlst n (strcat "-" a1))
- )
- (fill_list_box "key1" boxlst)
- )
- (progn
- (setq boxlst (LI_DelLst boxlst n)
- ;删除表项
- boxlst (LI_AddList boxlst n (strcat "+" a1))
- )
- (fill_list_box "key1" boxlst)
- )
- )
- )
|