Table of contents
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

Application.MarkerEvent-Ereignis (Visio)Application.MarkerEvent Event (Visio)

office 365 dev account|Zuletzt aktualisiert: 06.03.2018
|
2 Mitarbeiter

Durch die QueueMarkerEvent -Methode verursacht.Caused by calling the QueueMarkerEvent method.

SyntaxSyntax

Private Sub AusdruckMarkerEvent( **_ByVal app als [IVAPPLICATION]** , ByVal SequenceNum As Long , ByVal ContextString As String )Private Sub expressionMarkerEvent( **_ByVal app As [IVAPPLICATION]** , ByVal SequenceNum As Long , ByVal ContextString As String )

Ausdruck Eine Variable, die ein Application -Objekt darstellt.expression A variable that represents an Application object.

ParameterParameters

NameNameErforderlich/OptionalRequired/OptionalDatentypData TypeBeschreibungDescription
AppappErforderlichRequired[IVAPPLICATION][IVAPPLICATION]Die aktive Instanz von Microsoft Visio.The active instance of Microsoft Visio.
SequenceNumSequenceNumErforderlichRequiredLongLongDie Ordinalposition dieses Ereignisses in Bezug auf vergangene Ereignisse.The ordinal position of this event with respect to past events.
ContextStringContextStringErforderlichRequiredStringStringVon der QueueMarkerEvent -Methode übergebenen Kontextzeichenfolge.Context string passed by the QueueMarkerEvent method.

HinweiseRemarks

Im Gegensatz zu anderen Ereignissen, die von Visio ausgelöst wird, wird das MarkerEvent -Ereignis von einem Clientprogramm ausgelöst. Ein Clientprogramm empfängt das MarkerEvent -Ereignis nur, wenn das Clientprogramm die QueueMarkerEvent -Methode aufgerufen wird.Unlike other events that Visio fires, the MarkerEvent event is fired by a client program. A client program receives the MarkerEvent event only if the client program called the QueueMarkerEvent method.

Das MarkerEvent -Ereignis in Verbindung mit der QueueMarkerEvent -Methode verwenden, kann ein Clientprogramm ein Ereignis in selbst Warteschlange. Das Clientprogramm empfängt das MarkerEvent -Ereignis nach Visio löst alle Ereignisse, die zum Zeitpunkt des Anrufs QueueMarkerEvent in seiner Ereigniswarteschlange vorhanden.By using the MarkerEvent event in conjunction with the QueueMarkerEvent method, a client program can queue an event to itself. The client program receives the MarkerEvent event after Visio fires all the events present in its event queue at the time of the QueueMarkerEvent call.

Das MarkerEvent -Ereignis übergibt sowohl die Kontextzeichenfolge, die durch die QueueMarkerEvent -Methode und die Sequenznummer des MarkerEvent -Ereignis an den MarkerEvent -Ereignishandler übergeben wurde. Diese beiden Werte können verwendet werden, zum Korrelieren QueueMarkerEvent Anrufe mit MarkerEvent -Ereignisse. Auf diese Weise kann ein Clientprogramm Ereignisse, die von die ihm verursachten unterscheiden, die es selbst verursacht hat.The MarkerEvent event passes both the context string that was passed by the QueueMarkerEvent method and the sequence number of the MarkerEvent event to the MarkerEvent event handler. Either of these values can be used to correlate QueueMarkerEvent calls with MarkerEvent events. In this way, a client program can distinguish events it caused from those it did not cause.

Beispielsweise sollten ein Clientprogramm, die die Werte der Visio-Zellen ändert nur der CellChanged -Ereignisse zu reagieren, die es selbst verursacht hat. Das Clientprogramm kann zuerst die QueueMarkerEvent -Methode aufrufen und eine Kontextzeichenfolge zur späteren Verwendung auf die Verarbeitung des Bereichs Klammer übergeben:For example, a client program that changes the values of Visio cells may only want to respond to the CellChanged events that it did not cause. The client program can first call the QueueMarkerEvent method and pass a context string for later use to bracket the scope of its processing:


vsoObject.QueueMarkerEvent "ScopeStart" 
 <My program changes cells here> 
vsoObject.QueueMarkerEvent "ScopeEnd" 

Anschließend konnte im MarkerEvent -Ereignishandler das Clientprogramm verwenden, die an die QueueMarkerEvent -Methode übergebene Kontextzeichenfolge die CellChanged -Ereignisse identifizieren, die von ihm verursachten:Then, in the MarkerEvent event handler, the client program could use the context string passed to the QueueMarkerEvent method to identify the CellChanged events that it caused:


Dim blsICausedCellChanges as Boolean 

Private Sub vsoObject_MarkerEvent (ByVal vsoApplication As Visio.IVApplication, _ 
 ByVal lngSequenceNum As Long, ByVal strContextString As String) 

 If strContextString = "ScopeStart" Then 
 blsICausedCellChanges = True 
 ElseIf strContextString = "ScopeEnd" Then 
 blsICausedCellChanges = "False" 
 End If 

End Sub 

Private Sub vsoObject_CellChanged (ByVal Cell As Visio.IVCell) 

 'Respond only if this client didn't cause a cell change. 
 If blsICausedCellChanges = False Then 
 <respond to the cell changes> 
 End If 

End Sub

Wenn Sie Microsoft Visual Basic oder Visual Basic für Applikationen (VBA) verwenden, beschreibt die Syntax in diesem Thema eine gängige und effiziente Methode zum Verarbeiten von Ereignissen.If you're using Microsoft Visual Basic or Visual Basic for Applications (VBA), the syntax in this topic describes a common, efficient way to handle events.

Wenn Sie Ihre eigene Ereignisobjekte erstellen möchten, verwenden Sie die Add - oder AddAdvise -Methode. Verwenden Sie die Add -Methode zum Erstellen eines Event -Objekts, das ein Add-on ausführt wie der EventList -Auflistung angewendet werden kann. Verwenden Sie zum Erstellen eines Event -Objekts, das eine Benachrichtigung empfängt, die AddAdvise -Methode. Ein Ereigniscode für das Ereignis, den Sie erstellen möchten, finden Sie unterEreigniscodes.If you want to create your own Event objects, use the Add or AddAdvise method. To create an Event object that runs an add-on, use the Add method as it applies to the EventList collection. To create an Event object that receives notification, use the AddAdvise method. To find an event code for the event you want to create, seeEvent codes.

Wenn Sie dieses Ereignis aus einem Programm, die eine Benachrichtigung empfängt verarbeiten, wird das MarkerEvent -Ereignis eines einer Gruppe von Ereignissen, die in die EventInfo -Eigenschaft des Application -Objekts zusätzliche Informationen aufzeichnen.If you are handling this event from a program that receives a notification, the MarkerEvent event is one of one of a group of events that record extra information in the EventInfo property of the Application object.

Die EventInfo -Eigenschaft gibt ContextString zurück, wie oben beschrieben. Das Argument VarMoreInfo für VisEventProc wird leer sein.The EventInfo property returns ContextString as described above. The varMoreInfo argument to VisEventProc will be empty.

BeispielExample

In diesem Beispiel wird veranschaulicht, wie mit dem MarkerEvent -Ereignis ein Ereignis in der Ereigniswarteschlange markiert.This example shows how to use the MarkerEvent event to mark an event in the event queue.

Fügen Sie diesen Beispielcode in das Codefenster ThisDocument , und führen Sie UseMarker . Die Ausgabe wird im Direktfenster angezeigt.Paste this example code into the ThisDocument code window and then run UseMarker . The output will be displayed in the Immediate window.


Dim WithEvents vsoApplication As Visio.Application 

Private Sub vsoApplication_MarkerEvent(ByVal app As Visio.IVApplication, _ 
 ByVal lngSequenceNum As Long, ByVal strContextString As String) 
 Debug.Print "Marker: " &; app.EventInfo(0) 

End Sub 

Private Sub vsoApplication_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 Debug.Print " ShapeAdded: " &; vsoShape.Name 

End Sub 

Public Sub UseMarker() 

 Set vsoApplication = ThisDocument.Application 

 'MarkerEvent events can be used to comment a segment 
 'of events in the queue. 
 vsoApplication.QueueMarkerEvent "I am starting..." 
 ActivePage.DrawRectangle 0, 0, 3, 3 
 vsoApplication.QueueMarkerEvent "I am finished..." 

End Sub

Das folgende Ergebnis wird im Direktfenster angezeigt:The output in the Immediate window looks like this:

Marker: I am starting...Marker: I am starting...

ShapeAdded: Sheet.1ShapeAdded: Sheet.1

Marker: I am finished...Marker: I am finished...

© 2018 Microsoft