试试这个,可以将编辑框里的内容添加到列表框中,如列表框中已经有了,则不添加。
- (setq ttt "8")
- (setq sss "0")
- (setq key t)
- (defun t_01 ()
- (setq key nil)
- (setq t_1 (get_tile "t_01"))
- (if (= (setq id (member t_1 s_dia_lis)) nil)
- (progn
- (setq s_dia_lis (cons t_1 s_dia_lis))
- (start_list "s_01" 1)
- (mapcar 'add_list s_dia_lis)
- (end_list)
- (set_tile "s_01" "0")
- )
- (progn
- (setq id (- (length s_dia_lis)(length id)))
- (set_tile "s_01" (rtos id)))
- )
- (setq s_1 t_1
- s_a (rtos id)
- )
- )
- (defun s_01 ()
- (setq s_a (get_tile "s_01"))
- (setq s_1 (nth (atoi s_a) s_dia_lis))
- (set_tile "t_01" s_1)
- (setq t_1 s_1)
- )
- (defun c:test (/ )
- (if (null t_1)
- (setq t_1 ttt)(setq ttt t_1)
- )
- (if (null s_1)
- (setq s_1 sss)(setq sss s_1)
- )
- (if key
- (setq s_dia_lis (list "2" "4" "5" "6" "8" "10"))
- )
- (setvar "cmdecho" 0)
- (setq dcl_id (load_dialog "test"))
- (new_dialog "test" dcl_id)
- (set_tile "t_01" t_1)
- (set_tile "s_01" s_a)
- (start_list "s_01")
- (mapcar 'add_list s_dia_lis)
- (end_list)
- (action_tile "s_01" "(s_01)")
- (action_tile "t_01" "(t_01)")
- (action_tile "cancel" "(done_dialog 0)")
- (setq what (start_dialog))
- (cond ((= 1 what) (t01))
- ((= 2 what) (t02))
- )
- (setvar "cmdecho" 1)
- (princ)
- )
|