Событие Application.MustFlushScopeBeginning (Visio)
Происходит до того, как экземпляр Microsoft Visio будет вынужден очистить свою очередь событий.
Синтаксис
expression. MustFlushScopeBeginning (приложение)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Приложение | Обязательный | [IVAPPLICATION] | Экземпляр Visio, который вынужден сбрасывать свою очередь событий. |
Замечания
Это событие вместе с событием MustFlushScopeEnded можно использовать для определения того, запускается ли событие, так как Visio вынужден очистить свою очередь событий.
Visio поддерживает очередь ожидающих событий, которые она пытается запустить в дискретные моменты, когда она может обрабатывать произвольные запросы (обратные вызовы) от обработчиков событий.
Иногда Visio вынужден сбрасывать свою очередь событий, если она не готова к обработке произвольных запросов. В этом случае Visio сначала запускает событие MustFlushScopeBeginning , а затем запускает события, которые сейчас находятся в очереди событий. После запуска всех ожидающих событий Visio запускает событие MustFlushScopeEnded .
После запуска события MustFlushScopeBeginning в Visio клиентские программы не должны вызывать методы Visio, имеющие побочные эффекты, пока не будет получено событие MustFlushScopeEnded . Клиент может выполнять произвольные запросы объектов Visio, если Visio находится между событием MustFlushScopeBeginning и MustFlushScopeEnded , но операции, вызывающие побочные эффекты, могут завершиться ошибкой.
Visio выполняет принудительная очистка очереди событий непосредственно перед запуском события "до", например BeforeDocumentClose или BeforeShapeDelete , так как события в очереди могут применяться к объектам, которые собираются закрыть или удалить. Используя событие BeforeDocumentClose в качестве примера, можно поместить в очередь события, которые применяются к объекту фигуры в закрываемом документе. Таким образом, перед закрытием документа Visio запускает все события в очереди событий.
При удалении фигуры события запускаются в следующей последовательности:
Событие MustFlushScopeBeginning — клиент не должен вызывать методы, имеющие побочные эффекты.
В очереди событий имеется ноль (0) или больше событий.
Событие BeforeShapeDelete — shape является жизнеспособным, но Visio собирается удалить его.
Событие MustFlushScopeEnded — клиент может возобновить вызов методов, имеющих побочные эффекты.
Событие ShapesDeleted — фигура удалена.
Событие 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 и обратная связь.