Перейти к основному содержимому
Версия: 5.x

Оператор MESSAGE

Оператор MESSAGE - создание действия, показывающего пользователю сообщение.

Синтаксис

MESSAGE expression options

Опции оператора options могут перечисляться друг за другом в произвольном порядке. Поддерживается следующий набор опций:

syncType
LOG

Описание

Оператор MESSAGE создает действие, которое показывает сообщение пользователю либо в виде диалогового окна с текстовым сообщением, либо в системном окне System.log. Текстовое сообщение может быть представлено как строковой константой, так и другим более сложным выражением, значением которого является строка или значение, преобразуемое в строку.

Параметры

  • expression

    Выражение, значением которого является текст сообщения.

  • syncType

    Тип синхронизации. Определяет, когда завершается выполнение созданного действия. Задается одним из ключевых слов:

    • WAIT - после завершения показа сообщения (в случае показа диалогового окна с сообщением - после закрытия окна). Это значение используется по умолчанию.

    • NOWAIT - сразу после подготовки информации для передачи пользователю (чтения текста сообщения). Если во время выполнения некоторого продолжительного действия вызываются несколько MESSAGE NOWAIT действий, то они могут объединяться с предыдущими сообщениями такого же вида. В результате пользователю в конце выполнения продолжительного действия будет показано одно объединенное сообщение.

  • LOG

    Ключевое слово, при указании которого сообщение показывается в окне сообщений System.log.

Примеры

message { MESSAGE 'Hello World!'; } // простое текстовое сообщение

isGood = DATA BOOLEAN (Item);
stringData(Item i) {
// в зависимости от того, какой item будет передан действию, будет показываться окно
// с текстом 'Good', либо с текстом 'Bad'
MESSAGE IF isGood(i) THEN 'Good' ELSE 'Bad';
}

// В этом случае пользователю будет выдано пять текстовых сообщений,
// а третье будет дополнительно записано в лог
testMessage() {
LOCAL i = INTEGER();
i() <- 0;
WHILE i() < 5 DO {
i() <- i() + 1;
MESSAGE i();
IF i() == 3 THEN {
MESSAGE i() LOG;
}
}
}

// В случае NOWAIT пользователю будет выдано одно текстовое сообщение,
// объединяющее сообщения от пяти вызовов MESSAGE
testMessageNowait() {
LOCAL i = INTEGER();
i() <- 0;
WHILE i() < 5 DO {
i() <- i() + 1;
MESSAGE i() NOWAIT;
}
}