DCL语句如下: dia9a:dialog{ label="滑动条辅助[编号设计]范例"; :boxed_row{ label="新编号前置类别"; :column{ :text{ label="A←英文字→Z"; alignment=centered; } :slider{ key="slider_abc"; min_value=1; max_value=26; width=30; height=1; small_increment=1; big_increment=1; } } :column{ spacer_0; :edit_box{key="kabc";edit_width=2;} } } :boxed_row{ label="新后置编号"; :column{ :text{ label="1←数字→99"; alignment=centered; } :slider{ key="slider_123"; min_value=1; max_value=99; width=30; height=1; small_increment=1; big_increment=10; } } :column{ spacer_0; :edit_box{key="k123";edit_width=2;} } } :edit_box{ label="新编号全名"; key="knumstr"; edit_width=10; alignment=centered; fixed_width=true; } spacer_1; ok_cancel; } AutoLISP语句如下: (defun c:dia9a() (setvar "cmdecho" 0) (dcl_dia9a) (prin1) ) (defun dcl_dia9a() (setq dcl_id (load_dialog "dia9a")) (new_dialog "dia9a" dcl_id) (def_dia9a) (action_tile "slider_abc" "(sub_s_abc $value)") (action_tile "slider_123" "(sub_s_123 $value)") (action_tile "accept" "(ok_dia9a) (done_dialog 1)") (setq dd (start_dialog)) (if (= dd 1) (progn (setvar "cmdecho" 1) (command "text" pause pause pause numstr) (setvar "cmdecho" 0) ) ) ) (defun def_dia9a() (set_tile "kabc" "A") (set_tile "slider_abc" "1") (set_tile "k123" "50") (set_tile "slider_123" "50") (get_numstr) ) (defun sub_s_abc(vvs) ;依ASCII码转换为单一字符 ;(chr 65) →"A" (chr 90) →"Z" (set_tile "kabc" (chr (+ 64 (atoi vvs)))) (get_numstr) ) (defun sub_s_123(vvs) (set_tile "k123" vvs) (get_numstr) ) (defun get_numstr() (setq numbstr1 (get_tile "kabc")) (setq numbstr2 (get_tile "k123")) (set_tile "knumstr" (strcat numstr1 numstr2)) ) (defun ok_dia9a() (setq numstr (get_tile "knumstr")) ) 运行效果是DCL对话框闪烁,就是不不出来!请问那个高手有招吗?? |