Тема: Как сделать некоторые "контролсы" неактивными при вызове окна, но всякий раз по-разному?

Надо вызывать окно, в котором меняется состояние "активности" некоторых полей в зависимости от того, что в момент вызова происходило в программе. Так вот как это сделать? Статическое задание тэгов "value" в DCL-файле здесь не годится. Если в лиспе явно (а не через ACTION_TILE) вызывать MODE_TILE, как обычно, после NEW_DIALOG, но до вызова START_DIALOG, то никакого эффекта. То есть окно появляется с неправильно "дезактивированными" полями, а если начать по нему лазить, то всё приходит в порядок, как прописано в лиспе в ACTION_TILE. Но появляется-то окно (и висит так до первого "переключения") неправильно!

Re: Как сделать некоторые "контролсы" неактивными при вызове окна, но всякий раз по-разному?

> Maxim T
Уважаемый Максим! Из Вашего объяснения я совершенно
ничего не понял.Может быть старшие товарищи по
LISP и DCL помогут.
(фрагмент старого анекдота :
-Куда немцы поехали?
-Курс норд-норд-ост.
-Да ты не выпендривайся , пальцем покажи.)

Re: Как сделать некоторые "контролсы" неактивными при вызове окна, но всякий раз по-разному?

Показываю пальцем.
КАК ЗАДАТЬ "СЕРОСТЬ" (неактивность) НЕКОТОРЫХ определённых ПОЛЕЙ ДИАЛОГОВОГО ОКНА _П_Е_Р_Е_Д_ ЕГО ЗАПУСКОМ, А НЕ ВО ВРЕМЯ ЕГО ОТОБРАЖЕНИЯ (работы оператора в нём) ?
Теперь опять повыпендриваюсь;)
Есть в Виндовс (и не только в ней) такое понятие - неактивные контролсы. Это когда пользователь видит в диалоговой форме поля, а ткнуть их не может, потому что они "серые".
Так вот программист должен позаботиться о том, чтобы:
1. когда оператор "тычет" в разные поля, то чтобы они переключали свою "доступность" в соответствии со своим смыслом (логикой) - это у меня получается:)
2. чтобы окно появлялось в таком состоянии, которое соответствует текущему "положению вещей" в программе. (То есть если раньше пользователь уже вызывал это окно и поустанавливал эти поля, или - при первом запуске - состояние "по умолчанию", или состояние, считанное из конфигурационного файла).
Так вот с 1 пунктом всё нормально, а 2 - не получается, то есть все поля при запуске доступны (не-серые), что противоречит смысловой логике построения окна.
Чтобы сделать "серыми" нужные поля, применяется функция (mode_tile "имя_поля" код_состояния). Но если вызвать эту функцию ПЕРЕД ф-ей start_dialog, то она не подействует - все поля окна будут доступны.
В объектных языках достаточно просто повесить "активизацию" нужных полей на событие "открытие окна" (в экземпляре этого окна, разумеется).
А как в Автолиспе ?

Re: Как сделать некоторые "контролсы" неактивными при вызове окна, но всякий раз по-разному?

> Maxim T
Уважаемый!
С mode_tile в lisp-файле все отлично работает!
Еще раз внимательно проверьте:
(mode_tile "код_выключаемого_поля" 1)
Может имя поля не то, может нолик вместо единички...