Тема: Как создать вложенные окна?
как сделать вложенные окна
тоесть чтоб при нажатии на кнопку в одном окне открывалось другое а предыдущее не закрывалось
и оба окна передавали свои параметры в lisp программу
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → DCL → Как создать вложенные окна?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
как сделать вложенные окна
тоесть чтоб при нажатии на кнопку в одном окне открывалось другое а предыдущее не закрывалось
и оба окна передавали свои параметры в lisp программу
написал примерную прогу где переход в одно окно
сделать удалось , а вот обратно никак ,,???
пишет ошибка : неверный тип аргумента consp nil
set_tile "edit2" "100") (set_tile "edit1" "0") (setq on_ed1 "0" on_ed2 "100") (setq what_next 8) (while (< 2 what_next) (action_tile "edit1" "(setq on_ed1 $value)") (action_tile "edit2" "(setq on_ed2 $value)") (action_tile "btn2" "(done_dialog 2)") (setq what_next0 (start_dialog)) (cond ;ето из-за етого ((= what_next0 2) (alert "кнопка 2!"))) ;но как в цикле подругому проверить была ли она нажата ???? (action_tile "edit3" "(setq on_ed3 $value)") (action_tile "accept" "(done_dialog 1) (ok_tab)") (setq what_next (start_dialog)) ) (unload_dialog dcl_id) ; Unload the DCL file (setq relst ret_value1)
всё ненадо я разобрался
(defan den(/) (alert "кнопка 2!") ) (while (< 2 what_next) (action_tile "edit1" "(setq on_ed1 $value)") (action_tile "edit2" "(setq on_ed2 $value)") (action_tile "btn2" "(den)") )
Здравствуйте! Помогите пожалуйста разобраться с различными переходами их одного окна в другое! Возможно это элементарно, но я пока не совсем понимаю.
Так вот! Есть три диалоговых окна: №1, №2, №3. Из №1 надо перейти в №2 по нажатию ОК так, чтобы №1 закрылось! Из №2 надо перейти в №3 по кнопке "Далее", так чтобы №2 осталось открытым, а потом назад перейти из №3 в №2 по нажатию кнопки "Назад"
Из окна №1 не получается перейти так в №2, чтобы №1 закрылось. Из №2 в №3 вообще не переходит и виснет так, что приходится снимать АКАД через три клавиши! Подскажите пож-та мою ошибку! Заранее благодарю!
DCL:
Окно №1 tmp.dcl
window_1:dialog{label="Первое окно"; :text{label="ЭТо окно должно закрыться при нажатииOK ";} :text{label="И появиться Второе окно";} spacer_1; ok_cancel; }
Окно №2 и №3 tmp1.dcl
window_2:dialog{label="Второе окно"; :text{label="ЭТо окно должно появиться при нажатии ОК в Первом окне";} :text{label="При нажатии Далее должно появиться вложенное Третье окно";} spacer_1; :button {label="Далее>";key="btn1"; fixed_width=true; alignment=centered;} cancel_button; } window_3:dialog{label="Третье окно"; :text{label="ЭТо окно должно появиться при нажатии Далее во Втором окне";} :text{label="При нажатии <Назад должно появиться Второе окно";} spacer_1; :button {label="<Назад";key="btn1"; fixed_width=true; alignment=centered;} cancel_button; }
LISP:
(defun start ( / dcl_id step); Окно №1 (setq dcl_id (load_dialog "d:/lisp/tmp.dcl")) (if (not (new_dialog "window_1" dcl_id)) (exit)) ;(setq step nil) (action_tile "accept" "(done_dialog) (inp_data)") (action_tile "cancel" "(done_dialog) ") (start_dialog) (unload_dialog dcl_id) (princ "1") ) (defun inp_data ( / dcl_id step); Окно №2 (setq dcl_id (load_dialog "d:/lisp/tmp1.dcl")) (if (not (new_dialog "window_2" dcl_id)) (exit)) (setq step 8) (while (<= 2 step) (action_tile "btn1" "(done_dialog 2)") (action_tile "cancel" "(done_dialog 1)") (setq step (start_dialog)) (cond ((= step 2) (open2 dcl_id)) ((= step 1) (term_dialog)) ) ) (unload_dialog dcl_id) (princ "2") ) (defun open2 (dc /); Окно №3 (if (not (new_dialog "window_3" dc)) (exit)) (action_tile "btn1" "(done_dialog)") (start_dialog) (princ "3") )
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → DCL → Как создать вложенные окна?
Форум работает на PunBB, при поддержке Informer Technologies, Inc