Все элементы языка DCL чувствительны к регистру.
Диалоги и диалоговые окна
Диалоговые окна относятся к средствам интерфейса между приложением и проектировщиком и позволяют:
· в нужной форме отобразить какую-либо информацию;
· организовать ввод данных;
· выполнить настройки, необходимые для правильной работы приложения.
Диалоговые окна описываются с помощью диалогов.
Диалог – текст, описывающий одно диалоговое окно. В одном файле может быть записано несколько диалогов (для нескольких диалоговых окон). Они могут следовать в любом порядке, независимо от очередности их вызова из LISP-программы. Исходные тексты диалогов хранятся в текстовых файлах (файлах DOS) с расширением DCL.
Для диалоговых окон разработан специальный язык DCL (Dialog Control Language). Синтаксис языка DCL имеет много общего с языком C. Диалог состоит из совокупности директив.
Директива – логическая единица (предложение) языка DCL.
Форма записи предложений языка DCL – свободная. Между любыми элементами языка DCL (метками, разделительными символами, ключевыми словами, числами и строками) может быть любое количество пробелов.
Пример диалога.
Запрограммируем диалог ввода данных для расчета шарнирно опертой балки, загруженной равномерно распределенной нагрузкой на участке. Расчетная схема балки и предполагаемый вид диалогового окна показаны на рис. 2.
Рисунок 2 – Расчетная схема балки и диалоговое окно для ввода исходных данных |
Текст диалога приведен ниже.
Balka: dialog { label="Расчет балки";
:edit_box { label="Пролет, м"; key="L"; value="6"; edit_width=5; }
:edit_box { label="Привязка слева, м"; key="a"; value="0"; edit_width=5; }
:edit_box { label="Длина нагрузки, м"; key="b"; value="0"; edit_width=5; }
:edit_box { label="Величина нагрузки, кН/м"; key="q"; value="0"; edit_width=5; }
:spacer { height=1; }
:radio_row { label="Вычисление прогибов";
:radio_button { label="Да"; key="fy"; value="1";}
:radio_button { label="Нет"; key="fn"; value="0";}}
:spacer { height=1; }
ok_cancel;
} // Конец диалога Balka
Первая строка (заголовок диалога) содержит имя диалога, ключевое слово dialog и название окна.
Далее описываются поля для ввода данных. Описание состоит из указания текста, который выводится в окно, кода элемента окна, значения, выводимого в окно, и ширины окна.
Коды элементов окна, указанные в key=…, используются для описания действий AutoLISPа после выхода из ячейки редактирования.
Значения, указанные в value=…, являются лишьсредством оформления окна, и при описании диалога не попадают ни в какие переменные. При редактировании элемента окна результат редактирования сохраняется в системной переменной $value строкового типа. К переменной $value можно обращаться в LISP-программе при описании действий после выхода из ячейки редактирования.
Элемент диалога spacer выводит в окно пустую строку.
Элемент диалога radio_row описывает переключатель между несколькими возможными состояниями.
Элемент диалога ok_cancel описывает способы выхода из окна.
Символы // и далее до конца строки воспринимаются как комментарии.
При программировании диалогового окна можно проверить его внешний вид без загрузки DCL-файла в память. Это осуществляется через опции меню Tools ® Interface Tools ® Preview DCL in Editor.