在DCL对话框中经常用到双击列表框中的对象添加到另外的列表框中,和双击列表框中的内容删除之!希望高手帮忙改改使得更通用、方便!
;;使用样例 (action_tile "List1" "(tt22 $value)")
;;keys1 keys2 "List2" 这几个根据使用的实际对话框来改变
(defun tt22(vvs)
(cond((= $reason 4)
(setq keys2(sjtjdzdlbk keys1 keys2 "List2"))
)
((= $reason 1)())
);;cond
)
;;功能 双击下拉列表1中的内容添加到指定下拉列表中
;;lst 下拉列表1中的列表内容 如 (setq lst '("线宽种类" "倒角种类" "填充种类"))
;;lst1 指定下拉列表内容
;;key 指定下拉列表的key值
(defun sjtjdzdlbk(lst lst1 key / sjtjdzdlbk-1);;(sjtjdzdlbk 双击添加到指定列表框)
(setq sjtjdzdlbk-1(nth(atoi vvs)lst))
(setq lst1(cons sjtjdzdlbk-1 lst1))
(start_list key)
(mapcar 'add_list lst1)
(end_list)
lst1
)- ;;使用样例 (action_tile "List1" "(tt22 $value)")
- ;;keys1 keys2 "List2" 这几个根据使用的实际对话框来改变
- (defun tt22(vvs)
- (cond((= $reason 4)
- (setq keys2(sjtjdzdlbk keys1 keys2 "List2"))
- )
- ((= $reason 1)())
- );;cond
- )
- ;;功能 双击下拉列表1中的内容添加到指定下拉列表中
- ;;lst 下拉列表1中的列表内容 如 (setq lst '("线宽种类" "倒角种类" "填充种类"))
- ;;lst1 指定下拉列表内容
- ;;key 指定下拉列表的key值
- (defun sjtjdzdlbk(lst lst1 key / sjtjdzdlbk-1);;(sjtjdzdlbk 双击添加到指定列表框)
- (setq sjtjdzdlbk-1(nth(atoi vvs)lst))
- (setq lst1(cons sjtjdzdlbk-1 lst1))
- (start_list key)
- (mapcar 'add_list lst1)
- (end_list)
- lst1
- )
- ;;使用样例 (action_tile "List1" "(list_sjsc $value)")
- (defun list_sjsc(vvs);;(list_sjsc 下拉列表双击删除)
- (cond((= $reason 4)
- (setq keys1(sjsc_list "List1" keys1));;不要这句把下面progn这段撤销注释同样效果
- ;;; (progn ;;用这段的话就可以不要sjsc_list这个子程序
- ;;; (setq list_sjsc-1 (atoi(get_tile "List1")))
- ;;; (setq list_sjsc-2(MJ:removeNth list_sjsc-1 keys1))
- ;;; (setq keys1 list_sjsc-2)
- ;;; (dcl_lbfz "List1" keys1)
- ;;; )
- )
- (= $reason 1())
- );;cond
- );;defun
- ;;131.2 [功能] 从列表中删除指定的第n个元素
- ;;index 要删除的第几个元素
- ;;lst 列表
- (defun MJ:removeNth (index lst / c)
- (setq c -1)
- (apply 'append
- (mapcar '(lambda (x)
- (if (/= (setq c (1+ c)) index)
- (list x)
- )
- )
- lst
- )
- )
- )
- ;;函数说明
- ;;key 控件的key值(字符串)
- ;;lst 列表
- (defun dcl_lbfz(key lst)
- (start_list key);直列表 {"List4"} 初始化
- (mapcar 'add_list lst);添加列表项
- (end_list)
- )
- ;;函数功能 双击删除下拉列表中的元素
- ;;函数说明
- ;;调用方式 (setq lst(sjsc_list key lst))
- ;;例子 (setq keys1(sjsc_list "List1" keys1))
- ;;key 控件的key值
- ;;lst 赋予下拉列表控件的表
- ;;lst 值 样例 (setq lst '("1" "2" "3" "4" "5" "9" "6" "8" "7"))
- (defun sjsc_list(key lst / list_sjsc-1)
- (setq list_sjsc-1(atoi(get_tile key)))
- (setq lst(MJ:removeNth list_sjsc-1 lst))
- (start_list key)
- (mapcar 'add_list lst)
- (end_list)
- lst
- ;;; (dcl_lbfz key lst)
- )
|