Тема: Ошибка в программе. Popup_list.
Всем доброго дня!
Пожалуйста, помогите найти ошибку.
Если из меню выбирать какой-либо пункт, то работает.
Если сразу нажимать ОК, то ничего не происходит.
Помогите, пожалуйста!
И еще в этой программе я делаю вызов Help'а. Как сделать так чтобы открывалась не начальная страница, а нужный пункт меню (подменю)?
Всем заранее спасибо!
--------------
MySl.dcl
--------------
MySl: dialog { label = "Рабочие параметры чертежа."; : row { : boxed_column { label = "Установить"; children_fixed_width = true; : boxed_column { label="Слои"; fixed_width = true; : popup_list { key = "sloi"; edit_width = 20; } } } } ok_cancel_help; }
--------------
MySl.lsp
--------------
;;***************** MySl.lsp ************************ ;; Программа установки слоев из выпадающего меню * ;;*************************************************** (defun do_sloi () (cond ((= sloi 0) (progn (command "_LAYER" "_N" "Спецификация" "_C" 1 "Спецификация" "") (command "_LAYER" "_N" "Экспликация" "_C" 7 "Экспликация" "") )) ((= sloi 1) (progn (command "_LAYER" "_N" "Оси" "_C" 1 "ОСИ" "") (command "_LAYER" "_N" "КИП" "_C" 4 "КИП" "") )) ((= sloi 2) (progn (command "_LAYER" "_N" "Отметки" "_C" 7 "Отметки" "") (command "_LAYER" "_N" "Текст" "_C" 7 "Текст" "") )) );end cond ) (defun get_sloi () (setq My_sloi (list " Схемы" " Компоновки" " Монтажные")) (cond (setq sl_lst "0") (setq sl_lst "1") (setq sl_lst "2") ) (start_list "sloi") (mapcar 'add_list My_sloi) (end_list) (if (not sl_lst) (setq sl_lst "0")) (set_tile "sloi" sl_lst) (mode_tile "sloi" 2) ) (defun do_help () (help "AcadInst.chm") ) ;----------------------------------------------------------- (defun C:MySl () (setvar "cmdecho" 0) (command "_osnap" "_none") (setq dcl_id (load_dialog "MySl.dcl")) (if (not (new_dialog "MySl" dcl_id)) (exit) ) (get_sloi) (action_tile "sloi" "(setq sloi (read (setq sl_lst $value)))" ) (action_tile "accept" "(setq done 1) (done_dialog)") (action_tile "cancel" "(setq done 2) (done_dialog)") (action_tile "help" "(do_help)") (start_dialog) (unload_dialog dcl_id) (do_sloi) (command "_LAYER" "_S" "0" "") (if (= done 1) (progn (princ "\n Слои установлены. \n") ) ) (if (= done 2) (princ "\n Отмена.")) (princ) )