Событие InvisibleApp.MustFlushScopeBeginning (Visio)

Происходит до того, как экземпляр Microsoft Visio будет вынужден очистить свою очередь событий.

Синтаксис

expression. MustFlushScopeBeginning (приложение)

Выражение Переменная, представляющая объект InvisibleApp .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Приложение Обязательный [IVAPPLICATION] Экземпляр Visio, который вынужден сбрасывать свою очередь событий.

Замечания

Это событие вместе с событием MustFlushScopeEnded можно использовать для определения того, запускается ли событие, так как Visio вынужден очистить свою очередь событий.

Visio поддерживает очередь ожидающих событий, которые она пытается запустить в дискретные моменты, когда она может обрабатывать произвольные запросы (обратные вызовы) от обработчиков событий.

Иногда Visio вынужден сбрасывать свою очередь событий, если она не готова к обработке произвольных запросов. В этом случае Visio сначала запускает событие MustFlushScopeBeginning , а затем запускает события, которые сейчас находятся в очереди событий. После запуска всех ожидающих событий Visio запускает событие MustFlushScopeEnded .

После запуска события MustFlushScopeBeginning в Visio клиентские программы не должны вызывать методы Visio, имеющие побочные эффекты, пока не будет получено событие MustFlushScopeEnded . Клиент может выполнять произвольные запросы объектов Visio, если Visio находится между событием MustFlushScopeBeginning и MustFlushScopeEnded , но операции, вызывающие побочные эффекты, могут завершиться ошибкой.

Visio выполняет принудительная очистка очереди событий непосредственно перед запуском события "до", например BeforeDocumentClose или BeforeShapeDelete , так как события в очереди могут применяться к объектам, которые собираются закрыть или удалить. Используя событие BeforeDocumentClose в качестве примера, можно поместить в очередь события, которые применяются к объекту фигуры в закрываемом документе. Таким образом, перед закрытием документа Visio запускает все события в очереди событий.

При удалении фигуры события запускаются в следующей последовательности:

  1. Событие MustFlushScopeBeginning — клиент не должен вызывать методы, имеющие побочные эффекты.

  2. В очереди событий имеется ноль (0) или больше событий.

  3. Событие BeforeShapeDelete — shape является жизнеспособным, но Visio собирается удалить его.

  4. Событие MustFlushScopeEnded — клиент может возобновить вызов методов, имеющих побочные эффекты.

  5. Событие ShapesDeleted — фигура удалена.

  6. Событие NoEventsPending — события не запускаются.

Событие запускается как до (Событие BeforeShapeDeleted ), так и после (Событие ShapesDeleted ) фигура удаляется. Если программа, отслеживающая эти события, требует удаления дополнительных фигур в ответ на первоначальное удаление фигуры, она должна делать это в обработчике событий ShapesDeleted , а не в обработчике событий BeforeShapeDeleted . Событие BeforeShapeDeleted находится в области событий MustFlushScopeBeginning и MustFlushScopeEnded , а событие ShapesDeleted — нет.

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

Если вы используете Microsoft Visual Basic или Visual Basic для приложений (VBA), синтаксис в этом разделе описывает распространенный и эффективный способ обработки событий.

Если вы хотите создать собственные объекты Event , используйте метод Add или AddAdvise .

Чтобы создать объект Event , запускающий надстройку, используйте метод Add в том виде, в котором он применяется к коллекции EventList .

Чтобы создать объект Event , получающий уведомление, используйте метод AddAdvise .

Чтобы найти код события, которое требуется создать, см. статью Коды событий.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.