Тема: Чтение элемента вкл.(выкл) поля

Есть две radio_button(rb) и поле popup_list(pl). При нажатии rb1 pl гасится соттветственно при нажатии на rb2 активизируется. Загвостка состоит в том, как прочитать данные popup_list когда оно естествено влючено.
куски кода:
DCL

: boxed_row{
                                   label = "Шероховатость";
                                   fixed_width=true;
                                   width=15;
                                    : radio_button {
                                             label = "По контуру";
                                             key = "sherk";
                                             value = "0";
                                    }
                                    : radio_button {
                                             label = "Rz";
                                             key = "sherr";
                                             value = "1";
                                    }
                                    : popup_list {
                                             label = "";
                                             key = "sher";
                                             list = " \nRz320\nRz160\nRz80\nRz40\nRz20\n2,5\n1,25";
                                             edit_width=7;
                                    }
                          }

LISP

(action_tile
    "sherk"
    (strcat
      "(if (= (atoi $value ) 0)"
      "(mode_tile \"sher\" 0)"
      "(mode_tile \"sher\" 1))"
    )
  )
  (action_tile
    "sherr"
    (strcat
      "(if (= (atoi $value ) 0)"
      "(mode_tile \"sher\" 1)"
      "(mode_tile \"sher\" 0))"
    )
  )

Как ни пробовал ничего вразумительного не получается

Re: Чтение элемента вкл.(выкл) поля

Прочитать popup_list нельзя (таковы ограничения DCL). Можно узнать только номер выбранного элемента списка.

Re: Чтение элемента вкл.(выкл) поля

> Александр Ривилис
Я это и имел ввиду. Неправильно выразился

Re: Чтение элемента вкл.(выкл) поля

> Марк.S
Ну тогда можно что-то такое:

(setq i_sher (atoi (get_tile "sher")))

В любой момент времени, пока диалог не закрыт.

Re: Чтение элемента вкл.(выкл) поля

> Александр Ривилис
Пробовал. Всё время возвращает ноль.
Мне кажется get_tile нормально работает только для edit_box.
Пробовал также

(action_tile "sher" "(setq i_sher $value)")

но при таком варианте popup_list активен всегда.
Может нужно LISP код переделать?

Re: Чтение элемента вкл.(выкл) поля

Ни кто не может помочь?

Re: Чтение элемента вкл.(выкл) поля

> Марк.S
Что-то 5 раз прочитал но не понял в чем проблемма...
Если при закрытии диалога тебе надо вернуть значение popup_lis но при условии включения  radio_button
То на
(action_tile "accept"
вешай проверку по типу если radio_button включен то
(get_tile "sher")...
Если выключен NIL...
Извини, что не кодом, а текстовым пояснением, будут проблемы - пиши - появится время помогу.

Re: Чтение элемента вкл.(выкл) поля

1. Объедини свои radio_button в radio_column или radio_row.
2. Определи ключ для этой конструкции, например key="radio_sel"
3.(action_tile "radio_sel" "(chek $value)")
4.

(defun chek (select )
  (cond
  ((= select "sherk")
  (mode_tile "sher" 0)
  (setq i_sher (atoi (get_tile "sher")))
  )
  ((= select "sherr")
  (mode_tile "sher" 1)
  )
  )
  );end of defun 'chek'

Может с mode_tile напутал...сам поправь
При закрытии окна никакие get_tile уже не работают...окно то закрыто.
По ОК (или как ты окно закрываешь) перед done_dialog запускай некую функцию или просто сохраняй значение popup_list. А потом передавай его в функцию где оно будет обрабатываться.
Давай код, решим вместе. :)

Re: Чтение элемента вкл.(выкл) поля

А если после инициализации окна тоже запустить (chek (get_tile "radio_sel")) то и запоминать ничего по ОК не нужно.

Re: Чтение элемента вкл.(выкл) поля

Cпасибо откликнувшимся.

> Евгений Елпанов
Оказываеся ларчик просто открывался.
На ОК повещал конструкцию

(action_tile
    "accept"
    (strcat
      "(if (/= \"sherr\" 0)"
      "(setq i_sher (atoi(get_tile \"sher\"))))"
      "(done_dialog)"
    )
  )

И всё ОК.

> Стас
Ваш вариант тоже хорош и работает без проблем, но более подошел вариант с ОК_button-компактнее получается.