Форум НПФ  

Вернуться   Форум НПФ "ТОПОМАТИК" > Программные продукты "Топоматик Robur" на платформе "Robur AP3" > Средства разработки Топоматик Robur > Вопросы и ответы
Ник
Пароль
Регистрация FAQ Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04-27-2022, 17:23
boris3698 boris3698 вне форума
Новичок
 
Регистрация: Nov 2021
Сообщения: 8
По умолчанию Динамический ввод

Здравствуйте!

Подскажите пожалуйста, какие классы/методы отвечают за работу с динамическим вводом данных (строка ввода рядом с курсором). В частности, интересуют задачи с ним:

- Получить из него значение введённое пользователем
- Записать туда некоторое значение
- Очистить его

Заранее благодарю
Ответить с цитированием
  #2  
Старый 05-19-2022, 19:57
Support engineer Support engineer вне форума
Новичок
 
Регистрация: May 2022
Сообщения: 1
По умолчанию

Здравствуйте!

За интерактивный ввод данных отвечает статический класс CadCursors. В зависимости от типа данных, которые требуется запросить у пользователя, используются соответствующие статические методы.
GetAngle() - Предлагает пользователю указать точку при помощи курсора, после чего высчитывает угол от базовой точки в радианах относительно оси абсцисс (OX);
GetBoolean() - Пользователю предлагается ответить "Да" или "Нет". Булева функция;
GetInteger() - Ввод целого числа;
GetDouble() - Ввод вещественного числа;
GetLength() - Предлагает пользователю указать точку при помощи курсора, после чего высчитывает расстояние до базовой точки;
GetPoint() - Получение координат указанной курсором точки;
GetString() - Ввод строкового значения;
GetUserSelect() - Выбор одного из предложенных пользователю вариантов строкового значения.

Некоторые методы принимают в качестве последнего необязательного аргумента массив строк. Заполните и передайте этот массив в качестве последнего аргумента, если требуется предоставить пользователю дополнительный выбор в виде фиксированных строковых значений. Возвращаемым значением у таких методов будет GetPointResult. В остальных случаях тип возвращаемого значения будет bool.

GetPointResult позволяет определить, какое действие было совершено пользователем. Возможны следующие варианты:
Accept - Пользователь выполнил действие;
Cancel - Пользователь отменил действие;
UserCmd - Пользователь выбрал предложенный строковый вариант или нажал Enter и тем самым выбрал значение по умолчанию.

Если метод вернул значение GetPointResult.UserCmd, то, как правило, следует определить, какой именно выбор сделал пользователь. Последнее выбранное пользователем строковое значение можно получить при помощи свойства CadView.LastUserCmd.

Рассмотрим пример, в котором предложим пользователю ввести вещественное число с возможностью выбрать дополнительные варианты.

Код:
... var value = 0.0; var args = new[] {"По умолчанию", "0.05"}; var result = CadCursors.GetDouble(cadview, ref value, "Введите вещественное число:", args); //Если пользователь отменил действие if (result == GetPointResult.Cancel) { return; } //Если пользователь выбрал один из предложенных вариантов if (result == GetPointResult.UserCmd) { var userSelect = CadView.LastUserCmd; if (userSelect.Equals("По умолчанию",StringComparison.OrdinalIgnoreCase)) { value = 1.0; } else if (userSelect.Equals("0.05", StringComparison.OrdinalIgnoreCase)) { value = ValueConverter.StrToFloat(userSelect); } //В этом случае пользователь нажал Enter, не меняя значения по умолчанию else if (userSelect.Length == 0) { //Данный блок показан для примера. Если пользователь нажмёт Enter то значение value останется прежним. } } MessageDlg.Show($"Новое значение {value}"); ...
Ответить с цитированием
  #3  
Старый 05-24-2022, 10:11
boris3698 boris3698 вне форума
Новичок
 
Регистрация: Nov 2021
Сообщения: 8
По умолчанию

Здравствуйте, спасибо большое за развёрнутый ответ!

В продолжении этой темы, интересует ещё один момент. Как получить доступ к строке ввода, расположенной около курсора (данная строка появляется, когда пользователь начинает писать команду - далее нажимается enter и команда, соответственно, отправляется в консоль). В связи с этим вопрос: в каком классе описана логика работы с данной строкой? В пространстве имён был найден некий класс ConsoleCursor (http://help.topomatic.ru/current/do....consolecursor), но в обозревателе объектов VisualStudio данный класс отсутствует.
Подскажите пожалуйста, в чём может быть дело?
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 1:14.

Навигация по основному сайту
Главная Каталог продуктов и услуг Где купить Сопровождение
Вакансии О компании Обзоры Канал на YouTube

vBulletin v3.0.7 , Copyright ©2000-2022, Jelsoft Enterprises Ltd.
Copyright © 2003-2022, НПФ "ТОПОМАТИК".