;;说明:dcl list_box 选中项上移
;;参数:*Lst:list_box表
;;参数:n:选中项
;;返回:返回移动后的表
(defun swapUp(*Lst n / A I L TEMP)
(setq L nil)
(setq i -1)
(if (= n 0)
(progn
(setq *Lst (cons (car (reverse *Lst)) *Lst))
(setq *Lst (swapUp *Lst (1+ n)))
(reverse (cons (car *Lst) (reverse (cddr *Lst))))
)
(progn
(while (setq a (car *Lst))
(setq *Lst (cdr *Lst))
(setq i (1+ i))
(cond
((= (1- n) i) (setq temp a))
((= n i) (setq L (cons a L)) (setq L (cons temp L)))
(T (setq L (cons a L)))
)
)
(reverse L)
)
)
)
;;说明:dcl list_box 选中项下移
;;参数:*Lst:list_box表
;;参数:n:选中项
;;返回:返回移动后的表
(defun swapDown(*Lst n / A I L TEMP)
(setq L nil)
(setq i -1)
(if (= (1- (length *Lst)) n)
(progn
(setq *Lst (append *Lst (list (last *Lst))))
(setq *Lst (cdr (reverse (swapDown *Lst n))))
;(setq *Lst (reverse (cdr (swapDown *Lst n))))
(cons (car *Lst) (reverse (cdr *Lst)))
)
(progn
(while (setq a (car *Lst))
(setq *Lst (cdr *Lst))
(setq i (1+ i))
(cond
((= n i) (setq temp a))
((= (1+ n) i) (setq L (cons a L)) (setq L (cons temp L)))
(T (setq L (cons a L)))
)
)
(reverse L)
)
)
)