Перевести страницу

Создание приложений для науки и производства ещё не было таким простым

Диалог с пользователем

Эти операции предназначены для ведения диалога с пользователем во время выполнения программы. В настоящее время имеется только одна операция для выдачи сообщений, но в дальнейшем их список будет расширен. Будут добавлены операции для создания диалогов с выбором альтернатив в виде списков, ввода строк и чисел, показа таблиц и т.д. В принципе, многое из этого можно и сейчас сделать с помощью элементов управления на окне виртуального прибора, но диалоговоые операции отличаются тем, что они модальные, то есть, они сильнее привлекают внимание пользователя и делают его ответную реакцию обязательной.


message

Формат вызова:

    message <parameter0> [<parameter1>...<parameter6>];

    (message <parameter0> [<parameter1>...<parameter6>])

возвращает значение типа uint, возврат может быть проигнорирован;

первый параметр типа uint, может быть опущен;

второй параметр типа uint, может быть опущен;

третий параметр типа uint, может быть опущен;

четвертый параметр типа uint, может быть опущен;

пятый параметр типа str, может быть опущен;

шестой параметр типа str, может быть опущен;

седьмой параметр типа uint, может быть опущен;

возвращаемое значение, если используется, содержит код нажатой кнопки, который описан далее в описании третьего параметра;

назначение операции: выдает на экран окно с полученным первым параметром сообщением, и ожидает нажатия пользователем на одну из кнопок; если на схеме имеется элемент виртуального прибора, то есть, окно виртуального прибора открыто, то окно сообщения становится модальным только для окна прибора, если окна прибора нет, то окно сообщения становится модальным для всего приложения MAX15; вторым параметром, если он присутствует, задаётся вид сообщения, который определяет тип иконки и на нём и характер звукового сигнала (конкретный вид иконки и сигнал зависят от настроек операционной системы), здесь можно использовать предопределенные литеральные константы:

  • MESSAGE или СООБЩЕНИЕ или 0 - простое сообщение без иконки, тоже самое, если этот параметр опущен
  • INFO или ИНФОРМАЦИЯ или 1 - информационное сообщение
  • WARNING или ПРЕДУПРЕЖДЕНИЕ или 2 - предупреждающее сообщение
  • CRITICAL или ОШИБКА или 3 - сообщение о критической ошибке
  • QUESTION или ВОПРОС или 4 - сообщение с вопросом;

третий параметр, если присутствует, задаёт используемые на сообщении кнопки, они задаются целочисленными масками, которые можно объединить с помощью поразрядной операции I (поразрядное ИЛИ), в качестве масок можно использовать предопределенные литеральные константы или числа:

  • Ok или Принять или 1024 - также, если параметр отсутствует
  • Open или Открыть или 8192
  • Save или Сохранить или 2048
  • Cancel или Отменить или 4194304
  • Close или Закрыть или 2097152
  • Discard или Отвергнуть или 8388608
  • Apply или Применить или 33554432
  • Reset или Сбросить или 67108864
  • Defaults или Сбросить или 134217728
  • Help или Помощь или 16777216
  • SaveAll или СохранитьВсе или 4096
  • Yes или Да или 16384
  • YesToAll или ДаДляВсех или 32768
  • No или Нет или 65536
  • NoToAll или НетДляВсех или 131072
  • Abort или Прервать или 262144
  • Retry или Повторить или 524288
  • Ignore или Игнорировать или 1048576
  • NoButton или НетКнопки или 0

при значении параметра 0 кнопок на окне не будет, но его можно будет закрыть кнопкой управления окна, операция вернёт NoButton; четвертым параметром задаётся кнопка, выбранная по-умолчанию при появлении окна - при нажатии Enter или пробела на клавиатура будет нажата эта кнопка, здесь можно использовать литеральные константы или коды кнопков для третьего параметра, но обязательно используемая кнопка должна присутствовать в третьем параметре, если четвертый параметр опущен, то ни одна кнопка по умолчанию выбрана не будет; пятым параметром, если присутствует, задаётся расширенная информация для сообщения; шестым параметром, если присутствует, задаётся детализация сообщения, в нём будет иметься скроллирующее подокно, в которое можно вывести текст шестого параметра; седьмой параметр, если присутствует, задаёт интервал времени в секундах, в течение которого окно будет ожидать реакцию пользователя, значение равное 0 игнорируется, если в течение заданного интервала пользователь не нажмёт ни одну кнопку, окно само закроется и операция вернёт NoButton и выполнение программы продолжится, если же седьмой параметр отсутствует, окно будет ожидать реакцию пользователя практически бесконечно;