Как связать toggle & radio button в DCL?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как связать toggle & radio button в DCL?

Как связать toggle & radio button в DCL?

Ответ
Поиск в этой теме
Непрочитано 14.07.2005, 16:50 #1
Как связать toggle & radio button в DCL?
igorokmaster
 
Инженер конструктор хим. пр.
 
Украина, Львов
Регистрация: 13.07.2005
Сообщений: 3

Привет всем.
часть диалога dcl
: row {
: column {
: spacer {}
: toggle {
label = "М";
key = "tg_ap_sh2";
mnemonic = "М";
}}
: boxed_radio_column {
key = "brc2";
: radio_button {
label = "п";
value = "1";
key = "rb_ap_sh4";
mnemonic = "п";
}
: radio_button {
label = "я";
value = "0";
key = "rb_ap_sh5";
mnemonic = "я";
}}}
Мне нужно, чтобы при установлении флажка (toggle) группа переключателей (radio button) становилась активной, а после снятия
флажка опять становилась пассивной.
Может кто-то знает как это сделать. Буду очень благодарен
Просмотров: 4893
 
Непрочитано 14.07.2005, 18:30
#2
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Скорее всего в лиспе, обрабатывающем этот диалог, надо добавить выражение
Код:
[Выделить все]
(if (eq (get_tile "tg_ap_sh2") "0")
  (mode_tile "brc2" 1)
  (mode_tile "brc2" 0)
)
(action_tile
  "tg_ap_sh2"
  "(if (eq $value \"0\")
    	(mode_tile \"brc2\" 1)
    	(mode_tile \"brc2\" 0)
     )"
)
Ничего не проверял, могут быть ошибки, но принцип такой.
Apelsinov вне форума  
 
Автор темы   Непрочитано 15.07.2005, 16:46 Re: Как связать toggle & radio button в DCL?
#3
igorokmaster

Инженер конструктор хим. пр.
 
Регистрация: 13.07.2005
Украина, Львов
Сообщений: 3


Мне нужно групу переключателей сделать активной или пассивной, типа
is_enabled = false;
или
is_enabled = true;

Вот я никогда этого не делал и не представляю как это делается :о(
igorokmaster вне форума  
 
Непрочитано 15.07.2005, 17:04
#4
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


>igorokmaster
Вы в как диалог обрабатываете?
Apelsinov вне форума  
 
Автор темы   Непрочитано 16.07.2005, 01:40
#5
igorokmaster

Инженер конструктор хим. пр.
 
Регистрация: 13.07.2005
Украина, Львов
Сообщений: 3


Вот часть лиспа для обработки:

(setq dcl_sh1_id
(load_dialog "shema_ap")
vp nil
)
(if (not (new_dialog "ap1" dcl_sh1_id))
(exit)
)

...

(action_tile "tg_ap_sh2" "(setq on_tg2 (atoi $value))")

(action_tile "dk1" "(fun)")
(action_tile "dk2" "(fun)")

(action_tile "accept" "(done_dialog)")
(action_tile "cancel" "(exit)")

...

(defun fun ()
(setq k_ap (atof (get_tile "dk1"))
sc_ap (atof (get_tile "dk2"))
)
)

Мне интересно как можно изменить параметр диалогово окна is_enabled = true на is_enabled = false с помощю lisp????
ну типа set_tile или ..??
И еще чтобы это изменение происходило во время переключания toggle. Вот такие проблемы :о)
igorokmaster вне форума  
 
Непрочитано 18.07.2005, 11:28
#6
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


>igorokmaster
Я уже ответил на Ваш вопрос, читайте мой предыдущий код. [sm2004]

is_enabled - это параметр, который показывает погашено ли поле в начальном состоянии. Погашеность же поля через обработку диалога определяется функцией mode_tile.

Вот я с ее помощью и меняю эту погашенность для "brc2" (toggle) в зависимости от "tg_ap_sh2" ( boxed_radio_column) . А для того чтобы связать изменение "tg_ap_sh2" и поле "brc2" - записываю все это еще и в action_tile для "brc2" (toggle).

Вот. :shock: Разжувал!
Но :!: , я это не проверял, и не знаю сработает ли эта штука из mode_tile для boxed_radio_column [sm1402] . Оставляю это Вам.

Удачи!
Apelsinov вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как связать toggle & radio button в DCL?