> Пастух
У меня к сожалению нет коротенького примера, а специально создавать нет времени. Поэтому постараюсь объяснить "на пальцах".
Чтобы назначить одну общую функцию для всего диалогового окна нужно при вызове функции new_dialog задать третий параметр, который и указывает имя callback-функции для всего диалога:
(new_dialog "TESTDLG" dcl_id [b]"(*callback_function*)"[/b])
Ну а callback-функция может быть любой. В ней нужно будет анализировать $key, $value, $reason и возможно $data:
(defun *callback_function* ( / s)
(alert (strcat
"$key=" $key "\n" ;; наименование поля
"$value=" $value "\n" ;; значение поля
"$data=" $data "\n" ;; данные связанные с этим полем
"$reason=" (itoa $reason) "\n" ;; причина вызова callback-функции
))
;;
;; А дальше действия в зависимости от
;; полученных данных...
;;
)
В этом случае отпадает необходимость использовать action_tile и появляется возможность обработки достаточно сложных диалоговых окон в одном месте. К сожалению в самом AutoCAD не нашел ни одного примера такого использования callback-функции для диалогвых окон...