Студопедия — Взаимодействие с пользователем
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Взаимодействие с пользователем






Взаимодействие с пользователем заключается в запросах различных данных, объектов, выводе сообщений. Эти действия реализуются объектом AcadUtility, коллекцией AcadSelectionSets и ее объектом AcadSelectionSet.

Инициализация ограничений ввода

procedure InitializeUserInput(Bits: Byte; KeyWordList: OleVariant);

Вызов метода InitializeUserInput задает ограничения по вводу данных для методов: GetKeyword, GetInteger, GetReal, GetDistance, GetAngle, GetOrientation, GetPoint, и GetCorner.

Параметры:

  • Bits— битовый флаг, являющийся суммой бит в соответствии с их весами; обязательный
Бит Описание
  Запрещает NULL ввод, т.е. предотвращает ввод пользователем только Enter или пробела
  Запрещает ввод нуля
  Запрещает ввод отрицательных чисел
  Разрешает ввод координат точек за пределами чертежных лимитов даже если системная переменная LIMCHECK установлена в 1.
  Не используется
  Использовать для " резиновой нити" штриховую линию вместо сплошной
  Игнорировать Z-координату точек для метода GetDistance
  Разрешает ввод любых данных
  • KeyWordList — строка, которая задает допустимые ключевые слова; необязательный. Ключевые слова разделяются пробелом. Если при вводе ключевого слова разрешен сокращенный вариант — обязательная часть вводится в верхнем регистре.

Примеры использования:

// не разрешен NULL ввод Acad.ActiveDocument.Utility.InitializeUserInput(1); // не разрешен NULL ввод и использовать для " резиновой нити" штриховую линию (33 = 32 + 1) Acad.ActiveDocument.Utility.InitializeUserInput(33); // не разрешен NULL ввод, заданы ключевые слова Acad.ActiveDocument.Utility.InitializeUserInput(1, 'Yes No');

Вывод сообщений в командную строку

procedure Prompt(const Message: WideString); — функция выводит в командную строку текст Message

Параметры:

  • Message — текст сообщения; необязательный

Пример использования:

Acad.ActiveDocument.Utility.Prompt('Press any key...');

Запрос координат точки

function GetPoint(Point: OleVariant; Prompt: OleVariant): OleVariant;

Параметры:

  • Point — 3-х элементный массив координат начальной точки; необязательный
  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — 3-х элементный массив координат точки.

Пример использования:

var Pnt1, Pnt2: OleVariant; begin // Запрос у пользователя координат первой точки Pnt1: = Acad.ActiveDocument.Utility.GetPoint(, 'Укажите первую точку: '); // Запрос у пользователя координат второй точки с отображением " резиновой нити" от первой точки Pnt2: = Acad.ActiveDocument.Utility.GetPoint(Pnt1, 'Укажите вторую точку: '); // Построение отрезка из первой во вторую точку Acad.ActiveDocument.ModelSpace.AddLine(Pnt1, Pnt2); end;

Запрос угла прямоугольника

function GetCorner (Point: OleVariant; Prompt: OleVariant): OleVariant;

Параметры:

  • Point — 3-х элементный массив координат начальной точки; обязательный
  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — 3-х элементный массив координат точки.

Пример использования:

var Pnt1, Pnt2, Pnt3, Pnt4: OleVariant; begin // Запрос у пользователя координат первой точки Pnt1: = Acad.ActiveDocument.Utility.GetPoint(, 'Укажите первый угол: '); // Запрос у пользователя координат второй точки с // отображением " резинового прямоугольника" от первой точки Pnt2: = Acad.ActiveDocument.Utility.GetCorner(Pnt1, 'Укажите второй угол: '); // Вычисление остальных координат прямоугольника Pnt3: = AcadPoint(Pnt1[0], Pnt2[1]); Pnt4: = AcadPoint(Pnt2[0], Pnt1[1]); // Построение прямоугольника Acad.ActiveDocument.ModelSpace.AddLine(Pnt1, Pnt3); Acad.ActiveDocument.ModelSpace.AddLine(Pnt3, Pnt2); Acad.ActiveDocument.ModelSpace.AddLine(Pnt2, Pnt4); Acad.ActiveDocument.ModelSpace.AddLine(Pnt4, Pnt1); end;

Запрос угла

function GetAngle(Point: OleVariant; Prompt: OleVariant): Double;

Параметры:

  • Point — 3-х элементный массив координат начальной точки; необязательный
  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — угол в радианах против часовой стрелки (т.е. игнорирует значение ANGDIR).

Функция выводит в командную строку подсказку Prompt и ожидает от пользователя ввода либо значения угла (в текущем формате угловых единиц), либо ввода 2-х точек прямой с отображением " резиновой нити". При получении угла учитываются переменные ANGBASE и ANGDIR.

Пример использования:

var Ang: Double; begin // Запрос у пользователя угла Ang: = Acad.ActiveDocument.Utility.GetAngle(, 'Укажите значение угла: '); ShowMessage(Format('Задан угол %f градусов', [RadToDeg(Ang)])); end;

Запрос расстояния

function GetDistance(Point: OleVariant; Prompt: OleVariant): Double;

Параметры:

  • Point — 3-х элементный массив координат начальной точки; необязательный
  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — расстояние.

Функция выводит в командную строку подсказку Prompt и ожидает от пользователя ввода либо одной точки (если параметр Point опущен) либо 2-х точек с отображением " резиновой нити"

Пример использования:

var Dist: Double; begin // Запрос у пользователя точек для расчета расстояния Dist: = Acad.ActiveDocument.Utility.GetDistance(, 'Select first point: '); // Вывод значения расстояния в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Distance = %f', [Dist])); end;

Запрос целого числа

function GetInteger(Prompt: OleVariant): Smallint;

Параметры:

  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — введенное пользователем целое число.

Пример использования:

var Int: Smallint; begin // Запрос у пользователя целого числа Int: = Acad.ActiveDocument.Utility.GetInteger('Введите целое число < -32768...32767>: '); // Вывод значения в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Число = %d', [Int])); end;

Запрос вещественного числа

function GetReal(Prompt: OleVariant): Double;

Параметры:

  • Prompt — текст подсказки, выводимой в командную строку; необязательный

Возвращаемое значение — введенное пользователем вещественное число.

Пример использования:

var Dbl: Double; begin // Запрос у пользователя целого числа Dbl: = Acad.ActiveDocument.Utility.GetReal('Введите вещественное число: '); // Вывод значения в командную строку Acad.ActiveDocument.Utility.Prompt(Format('Число = %f', [Dbl])); end; Создание штриховки

Чтобы создавать штриховку, сначала создайте объект Hatch, используя метод AddHatch. После того, как объект Hatch был создан, добавьте внешний цикл, используя метод AppendOuterLoop. Внешний цикл должен быть закрыт и должен быть создан прежде, чем можно добавить любые внутренние циклы. После того, как был создан допустимый внешний цикл, добавляют внутренние циклы, по одному, используя метод AppendInnerLoop.

ПРЕДУПРЕЖДЕНИЕ! Как только объект Hatch был создан, Вы должны добавить внешний цикл к объекту Hatch для того, чтобы он стал допустимым объектом AutoCAD. Если Вы делаете любой другой запрос операции кроме метода AppendOuterLoop, AutoCAD введет непредсказуемое состояние.

 







Дата добавления: 2014-12-06; просмотров: 740. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Стресс-лимитирующие факторы Поскольку в каждом реализующем факторе общего адаптацион­ного синдрома при бесконтрольном его развитии заложена потенци­альная опасность появления патогенных преобразований...

ТЕОРИЯ ЗАЩИТНЫХ МЕХАНИЗМОВ ЛИЧНОСТИ В современной психологической литературе встречаются различные термины, касающиеся феноменов защиты...

Этические проблемы проведения экспериментов на человеке и животных В настоящее время четко определены новые подходы и требования к биомедицинским исследованиям...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия