Тема: Как присвоить введённые в окне данные соответствующим переменным?
Недавно стал осваивать DCL (учу по книге Полещука), но вот никак не могу понять как связать всё воедино. Что надо сделать чтобы данные, введённые в окне присваивались соответствующим переменным в LISP программе? Поэтому решил привести пример написанного мною окна (файл Data_base.dcl) и части программы на LISP. Понял, что в LISP программе нужно написать функции action_tile и другие. Но за два дня у меня так ничего и не получилось. Данные берутся из popup_list - как их оттуда взять - мне нужны все три значения и присвоить их разным переменным; и как сделать это поле по центру? В окне есть кнопка "Задать вручную" - она должна открывать другое окно, в котором пишутся значения и вставляются в код - подскажите как это сделать, остальное постараюсь написать сам. В ряду "Рукав" - если ставим галочку, то остальные три становятся недоступны. В ряду "Прибавки" - если ставим галочку, то Пб (key="b13") становится недоступна и можно ли как-то её опустить вниз и влево?
Спасибо. Буду ждать всех замечаний и предложений.
win_bd: dialog{label="Измерения и прибавки";width=60; :spacer{width=0;height=1;} :column{label="Введите измерения или выберети из списка";children_alignment=centered; :text{label="Индивидуальная фигура";key="t1";} :row{ :button{label="Задать вручную";key="l4";} } :column{children_alignment=centered; :text{label="Типовая фигура";key="h1";alignment=centered;} :edit_box{label="Ди"; key="b4";edit_width=4;edit_limit=4;} } :popup_list{key="k1";list="\n164-88-96 \n158-96-104 \n164-108-116 \n158-116-124 \n158-132-140";edit_width=12;}//Нужно сделать по ценру } :row{label="Прибавки"; :column{fixed_width=true;children_alignment=right; :text{label="Пг";} :text{label="Пспр";} } :column{fixed_width=true; :edit_box{key="b5";edit_width=3;edit_limit=2;} :edit_box{key="b6";edit_width=3;edit_limit=2;} } :column{fixed_width=true;children_alignment=right; :text{label="Пт";} :text{label="Поп";} } :column{fixed_width=true; :edit_box{key="b9";edit_width=3;edit_limit=2;} :edit_box{key="b10";edit_width=3;edit_limit=2;} } :column{fixed_width=true;children_alignment=right; :text{label="Пб";} :text{label="Пвок";} } :column{fixed_width=true; :edit_box{key="b13";edit_width=3;edit_limit=2;} :edit_box{key="b14";edit_width=3;edit_limit=2;} } :column{fixed_width=true; :toggle{key="t6";value="0";} } } :row{label="Рукав"; :column{fixed_width=true;children_alignment=right; :text{label="Прямой";} :text{label="Зауженный";} } :column{fixed_width=true; :toggle{key="t2";value="0";} :toggle{key="t3";value="0";} } :column{fixed_width=true;children_alignment=right; :text{label="С вытачкой";} :text{label="Двухшовный";} } :column{fixed_width=true; :toggle{key="t4";value="0";} :toggle{key="t5";value="0";} } } :spacer{width=0;height=2;} ok_cancel; }
(defun c:vorotnik () ;Диалоговое окно (if (<(setq nomer (load_dialog "Data_base.dcl")) 0)(exit)) (if (not(new_dialog "win_bd" nomer))(exit)) (set_tile "b4" "(setq Di)") (set_tile "b5" "(setq Pg)") (set_tile "b9" "(setq Pt)") (set_tile "b10" "(setq Pop)") (set_tile "b13" "(setq Pb)") (set_tile "b14" "(setq Pvok)") (start_dialog) (unload_dialog nomer) ;Далее идут вычисления и построение )