Реклама в Интернет


ГЛАВНАЯ
-----------------------------------
ДОВЕСКИ
часть 1
ДОВЕСКИ
часть 2
 
КОМПОНОВЩИК
БИБЛИОТЕК
-----------------------------------
МЕНЕДЖЕР
СЛАЙДОВ
 
DCL
файлы диалога
-----------------------------------
ПРОГРАММЫ
Страница 1
Страница 2
Страница 3
-----------------------------------
ПРОГРАММЫ
2002 года
 
ОБ АВТОРАХ
ПРОГРАММ
 
 
ДИАЛОГОВЫЕ ОКНА В AutoCAD'е

Диалоговые окна - одно из средств наглядной и удобной работы по вводу параметров в программу.
Диалоговые окна определяются в текстовых файлах с расширением DCL. В них содержится состав элементов окна и описание способа ввода. Управления диалоговыми окнами осуществляется из лисп-программы.
В Автокаде есть стандартные, предварительно определенные в файле BASE.DCL, поля, являющиеся основой диалоговых окон. Например:
Клавиши OK, Cancel, HELP.
При выборе того или иного поля (в фокусе) диалоговое окно извещает об этом вызывающую программу, выработкой соответствующего кода. Управление полем (видимость, момент появления) осуществляется его (поля) атрибутами.
Поля могут заключаться в рамку, выстраиваться в ряд, колонку.

Есть и другие работы по диалоговым окнам:

 
Я предлагаю Вам краткий обзор операторов языка DCL и некоторые примеры. Пробуйте, экспериментируйте.
ОСНОВНЫЕ ТИПЫ ПОЛЕЙ
АКТИВНЫЕ ПОЛЯ
 
КЛАВИША
button
  Обычная клавиша Windows, кнопка
  АТРИБУТЫ  
  label: Строка в кавычках, определяет надпись, которая будет на клавише
  is_default: Действие по умолчанию. Если значение FALSE или нет вообще кнопка не подсвечивается выбором. При значении TRUE (допускается иметь только одной кнопке окна) клавиша выделена и при нажатии клавиши <ENTER> происходит действие, сопряженное с этой кнопкой.
  is_cancel: Тоже самое, что и is_default, но при нажатии клавиши <CANCEL>
 
Текстовое Поле
edit_box
  Поле для ввода или редактирования текста.
  АТРИБУТЫ  
  label: Текстовая строка в кавычках. Выводится слева от поля.
  edit_width: Целое число - максимальное число символов, ограниченное рамкой, если значение не указано поле маштабируется по окну.
  edit_limits: То же самое с точностью наоборот.
  value: Строка в кавычках - исходное значение
 
Клавиша изображения
image_button
  Поле с графическим изображением. Возвращаемое значение - координаты точки, в которой произошел выбор.
  АТРИБУТЫ  
  color: Цвет фона (номер или символьное имя Автокада)
dialog_line - цвет диалогового окна,
dialog_forground - цвет символа,
dialog_background - цвет фона,
graphic_background - цвет фона графического экрана,
graphic_forground - цвет символа (черным по белому)
 
Поле списка
list_box
  Поле с текстом в несколько строк. Обычно список. При количестве строк большем, чем высота окна с права автоматически появляется шкала прокрутки.
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая над полем списка - типа заголовока.
  multiple_select: Возможность множественного выбора с помощью <SHIFT+ левая кнопка мыши> при значении TRUE.
FALSE - выбор только одного пункта
  list: Строка в кавычках - начальный выбор строки в поле списка.
  value: строка из чисел (начиная с нуля), заключенных в кавычки, - первоначальный выбор пунктов списка. Соответственно multiple_select может содержать несколько чисел (TRUE) или одно (FALSE).
 
Раскрывающийся
список
popup_box
  Поле с текстом в несколько строк, аналогичное list_box, новыглядит как поле со стрелкой справа, открывающей поле списка для выбора
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая слева списка - значения по умолчанию нет
  edit_widtht: Число - ширина поля в единицах ширины символа. При умолчании или нуле - выравнивается насколько возможно по окну.
  list: Строка в кавычках - начальный выбор строки в поле списка.
  value: чисел (начиная с нуля), заключенное в кавычки, - первоначальный выбор пункта в списке. Этот пункт будет выводиться в закрытом окне на экран.
 
Кнопка выбора
rado_button
  Группа или одна кнопочка ввиде кружка с текстом справа, объединенных в колонку или реже в ряд. Возможен выбор толко одной кнопки. Прив ыборе другой кнопки из группы - первая отключится.
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая справа от кнопки - значения по умолчанию нет
  value: Строка в кавычках с атрибутом включения кнопки при открытии окна.
"1" - кнопка включена
"0" и все другие значаения - кнопкавыбора отключена.
 
Скользящая шкала
slider
  Перемещаемый пользователем движок, премещение соответствует изменению числового значения, передающегося в программу.
  АТРИБУТЫ  
  min_value: ,
max_value:
Целые числа, определяющие граничные значения.
  small_increment: ,
big_increment:

Целые числа, определяющие значения приращения. По умолчанию первое - сотая доля диапозона, второе - десятая.
Атрибуты не обязательны

  layout: Горизонтальная (по умолчанию) или вертикальная шкала.
  label: Строка в кавычках, выводимая справа от кнопки - значения по умолчанию нет
  value: Строка в кавычках (целое число) с текущим значением шкалы
по умолчанию - min_value
 
Переключатель
toggle
  Перключатель "0" или "1" - небольшой прямоугольник с меткой "Х", вкл./выкл.
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая у кнопки - значения по умолчанию нет
  value: Строка в кавычках (целое число "0" или "1") включен/ выключен. При значении "1" выводится "Х".
АКТИВНЫЕ ГРУППЫ ПОЛЕЙ
 
Колонка
column
  Вертикальная колонка элементов
  АТРИБУТЫ  
    Колонка без рамки не имеет дополнительных атрибутов.
 
Колонка
в рамке
boxed_column
  Вертикальная колонка элементов с рамкой по периметру
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая в верхнем левом углу колонки, значение по умолчанию " ".
 
Ряд
row
  Горизонтальный ряд элементов
  АТРИБУТЫ  
    Колонка без рамки не имеет дополнительных атрибутов.
 
Ряд в рамке
boxed_row
  Горизонтальный ряд элементов с рамкой по периметру
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая в верхнем левом углу ряда, значение по умолчанию " ".
 
Колонка выбора
radio_column
  Колонка, содержащая поля кнопок выбора, из которых можно выбрать только одну кнопку.
  АТРИБУТЫ  
  value: Строка в кавычках, содержащая значение ключа "key" выбранной текущей кнопки выбора.
 
Колонка выбора
в рамке
boxed_
radio_column
  Колонка, содержащая поля кнопок выбора, из которых можно выбрать только одну кнопку с рамкой по периметру
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая в верхнем левом углу колонки, значение по умолчанию " ".
  value: Строка в кавычках, содержащая значение ключа "key" выбранной текущей кнопки выбора.
 
Ряд выбора
radio_row
  Ряд, содержащий поля кнопок выбора, из которых можно выбрать только одну кнопку.
  АТРИБУТЫ  
  value: Строка в кавычках, содержащая значение ключа "key" выбранной текущей кнопки выбора.
 
Ряд выбора
в рамке
boxed_radio_row
  Ряд, содержащий поля кнопок выбора, из которых можно выбрать только одну кнопку с рамкой по периметру
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая в верхнем левом углу ряда, значение по умолчанию " ".
  value: Строка в кавычках, содержащая значение ключа "key" выбранной текущей кнопки выбора.
ДЕКОРАТИВНЫЕ И ИНФОРМАЦИОННЫЕ ПОЛЯ
 
Изображение
image
  Прямоугольник с векторным изображением
  АТРИБУТЫ  
  color: Цвет фона (номер или символьное имя Автокада)
dialog_line - цвет диалогового окна,
dialog_forground - цвет символа,
dialog_background - цвет фона,
graphic_background - цвет фона графического экрана,
graphic_forground - цвет символа (черным по белому)
  acpect_ratio: Отношение ширины изображения к высоте.
 
Надпись
text
  Текстовая строка
  АТРИБУТЫ  
  label: Строка в кавычках, выводимая в поле надписи.
  value: Аналогична LABEL, но не влияет на компоновку полей. Если сообщение является неименяемым, следует определить атрибут LABEL без определения WIDTH и VALUE.
 
Разделитель
spacer
  Разделитель - пустое поле
  АТРИБУТЫ  
    НЕТ
Приведу примеры
На экране представлено диалоговое окно программы записи текста максимум в 5 строк
Это DCL-файл

five : dialog {

label = "Edit Text" ;

- имя диалога FIVE- по этому имени программа ищет диалоговое окно.
Запись в верхней строке окна

: text {
value = "Up to 5 Lines Text Editor: " ;
key = "t" ;
label = "t" ;
}
- Текстовая строка, выводимая в верхнем правом углу поля
: edit_box {
key = "eb1" ;
label = "Text:" ;
allow_accept = true ;
- Редактируемые поля
- ключ - eb1
- строка слева у поля
- при нажатой клавише <RETURN> становится нажатой
fixed_width = true ;

width = 70 ;
}
- Фиксированная ширина, не растет при компоновке
- Ширина поля

: edit_box {
key = "eb2" ;
label = "Text:" ;
allow_accept = true ;
fixed_width = true ;
width = 70 ;
}

: edit_box {
key = "eb3" ;
label = "Text:" ;
allow_accept = true ;
fixed_width = true ;
width = 70 ;
}

: edit_box {
key = "eb4" ;
label = "Text:" ;
allow_accept = true ;
fixed_width = true ;
width = 70 ;
}

: edit_box {
key = "eb5" ;
label = "Text:" ;
allow_accept = true ;
fixed_width = true ;
width = 70 ;
}

Аналогично для 4 других полей
ok_cancel ;
}
- Группа клавиш <OK> и <Cancel>
ФУНКЦИИ АВТОЛИСПА.
Сначала DCL-файл надо найти и открыть.
Обычно он располагается в том же каталоге где и вызывающая программа.
(load_dialod <имя_DCL_файла>)
Возвращаемое значение DCL_ID - целое
Функция
(unload_dialog DCL_ID)
выгружает диалоговый файл. Она записывается после обработки всех полей и выхода из диалога.
РАБОТА С ОКНАМИ
В DCL-файле может быть сгруппировано несколько диалоговых окон. Следующая функция вызывает диалоговое окно (по имени) и начинает управление им.
(new_dialog <имя_окна> DCL_ID)
После вызова этой функции происходит установка всех полей, присвоение значений, создание изображений, списков.
Возвращаемое значение t - при успешном открытии.

 

(start_dialog)
 
 
 
 
 

ЕЩЁ ПО ТЕМЕ

Хорошая статья о DCL-редакторах. Как можно визуально создавать диалоговые окна LISP программ.

ПРОДОЛЖЕНИЕ БУДЕТ

 
© Copyright Поспелов Геннадий "PG"