Изменение состояния
Операторы изменения состояния создают действия, которые меняют состояние системы, в которой выполняется действие. Платформа поддерживает следующие виды.
- Изменение свойства (
CHANGE) — записывает значение выражения в изменяемое свойство для наборов аргументов, удовлетворяющих условию. - Добавление объектов (
NEW) — создает объекты пользовательского класса, при необходимости записывая каждый созданный объект в первичное свойство. - Изменение класса (
DELETE/CHANGECLASS) — присваивает заданный класс выбранным объектам или удаляет их из системы.
Под изменением состояния здесь понимается состояние системы, в которой выполняется действие. Взаимодействие с внешними системами включено в раздел взаимодействие с пользователем.
Асинхронное обновление
Оператор асинхронного обновления создает действие, которое отправляет значение выражения в редактор, открытый у пользователя на форме, заменяя его текущее редактируемое значение. Используется в обработчиках событий изменения свойств, выводимых на форму, когда обработчик вычисляет новое значение, которое открытый редактор должен отразить сразу же, до ближайшего обновления формы. Если активного редактирования нет, действие не имеет эффекта.
Оператор принимает один аргумент — выражение, значение которого нужно отобразить — и использует его значение в момент выполнения.
Язык
Для объявления действия асинхронного обновления используется оператор ASYNCUPDATE.
Примеры
// возвращаем новое значение отображаемого кода в открытый редактор
onChangeSizeCode(Store store) {
DIALOG SelectStoreSize OBJECTS ss INPUT DO {
storeSize(store) <- ss;
}
ASYNCUPDATE storeSizeCode(store);
}