Тема: Как присвоить введённые в окне данные соответствующим переменным?

Недавно стал осваивать 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)
  ;Далее идут вычисления и построение
  )

Re: Как присвоить введённые в окне данные соответствующим переменным?

> Руслан
Ошибок много, на все вопросы не отвечу, хотя лучше чем описано у Полещука "Visual LISP и секреты адаптации..."это, я не видел ни у кого. Начните с 320стр. Небольшие замечания.
1.Самое главное - то что в диа.окнах - "строки"
у Вас

(set_tile "b4" "(setq Di)")

надо (лучше присвоить или посчитать), надо типа так
 

(setq Di 123)
  (set_tile "b4" (itoa Di))

2.Из popup_list приходит только номер выбранной строки, по нему ищем в списке.
3.

В окне есть кнопка "Задать вручную"

об этом очень доступно написано на 363 стр.
4.

В ряду "Рукав" - если ставим галочку, то остальные три становятся недоступны.

Для этого можно использовать  mode_tile или вообще перейти на radio_button (_row or _column).
5. Не смотря на то,что Вы пишите пример далогового окна, соблюдайте правила ЛИСПА, объявление локальных переменных

 (defun c:vorotnik ( / Di Pg ...)

Вообщем предела для совершенства нет, а для освоения - начали Вы правильно, только два дня маловато. Удачи!
Прочитайте также еще раз ответы на Ваш вопрос
https://www.caduser.ru/forum/topic22325.html
Еще раз напоминаю известный анекдот:
"Учите ребята матчасть, бо бьют больно!"