Application.MarkerEvent-Ereignis (Visio)
Dies wird durch aufrufen der QueueMarkerEvent-Methode verursacht.
Syntax
Ausdruck. MarkerEvent (app, SequenceNum, ContextString)
expression Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
App | Erforderlich | [IVAPPLICATION] | Die aktive Instanz von Microsoft Visio. |
SequenceNum | Erforderlich | Long | Die Ordinalposition dieses Ereignisses in Bezug auf vergangene Ereignisse. |
ContextString | Erforderlich | String | Kontextzeichenfolge, die von der QueueMarkerEvent-Methode übergeben wird. |
Hinweise
Im Unterschied zu anderen Ereignissen, die von Visio ausgelöst werden, wird das MarkerEvent-Ereignis von einem Clientprogramm ausgelöst. Ein Clientprogramm empfängt nur dann das MarkerEvent-Ereignis, wenn es die QueueMarkerEvent-Methode aufgerufen hat.
Mithilfe des MarkerEvent-Ereignisses in Verbindung mit der QueueMarkerEvent-Methode kann ein Clientprogramm ein Ereignis in eine eigene Warteschlange leiten. Das Clientprogramm empfängt das MarkerEvent-Ereignis, nachdem Visio alle beim Aufruf von QueueMarkerEvent in seiner Ereigniswarteschlange vorhandenen Ereignisse ausgelöst hat.
Das MarkerEvent-Ereignis übergibt sowohl die Kontextzeichenfolge, die von der QueueMarkerEvent-Methode übergeben wurde, als auch die Sequenznummer des MarkerEvent-Ereignisses an den MarkerEvent-Ereignishandler. Jeder dieser Werte kann verwendet werden, um QueueMarkerEvent-Aufrufe mit MarkerEvent-Ereignissen zu korrelieren. Dadurch kann ein Clientprogramm selbst verursachte Ereignisse von anderen Ereignissen unterscheiden.
Angenommen, ein Clientprogramm, das die Werte von Visio-Zellen ändert, soll nur auf CellChanged-Ereignisse reagieren, die es selbst verursacht hat. Das Clientprogramm kann zuerst die QueueMarkerEvent-Methode aufrufen und eine Kontextzeichenfolge zur späteren Verwendung übergeben, um den Verarbeitungsbereich in Klammern zu setzen.
vsoObject.QueueMarkerEvent "ScopeStart"
<My program changes cells here>
vsoObject.QueueMarkerEvent "ScopeEnd"
Im MarkerEvent-Ereignishandler könnte das Clientprogramm dann die an die QueueMarkerEvent-Methode übergebene Kontextzeichenfolge verwenden, um die cellChanged-Ereignisse zu identifizieren, die es verursacht hat.
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.
Wenn Sie eigene Event-Objekte erstellen möchten, verwenden Sie die Add- oder AddAdvise-Methode .
Verwenden Sie zum Erstellen eines Event-Objekts, das ein Add-On ausführt, die Add-Methode der EventList-Auflistung.
Verwenden Sie zum Erstellen eines Event-Objekts, das eine Benachrichtigung empfängt, die AddAdvise-Methode.
Informationen zum Suchen eines Ereigniscodes für das Ereignis, das Sie erstellen möchten, finden Sie unter Ereigniscodes.
Wenn Sie dieses Ereignis von einem Programm behandeln, das eine Benachrichtigung empfängt, ist das MarkerEvent-Ereignis eines der Gruppen von Ereignissen, die zusätzliche Informationen in der EventInfo-Eigenschaft des Application-Objekts aufzeichnen.
Die EventInfo-Eigenschaft gibt ContextString zurück, wie oben beschrieben. Das Argument varMoreInfo für VisEventProc ist leer.
Beispiel
Im folgenden Beispiel wird gezeigt, wie ein Ereignis in der Ereigniswarteschlange mit dem MarkerEvent-Ereignis markiert wird.
Fügen Sie diesen Beispielcode in das ThisDocument-Codefenster ein, und führen Sie dann UseMarker aus. Die Ausgabe wird im Direktfenster angezeigt.
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:
Marker: I am starting...
ShapeAdded: Sheet.1
Marker: I am finished...
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.