Свойство Shape.SpatialRelation (Visio)

Возвращает целое число, представляющее пространственное отношение одной фигуры к другой. Обе фигуры должны находиться на одной странице или в одной и той же master. Только для чтения.

Синтаксис

expression. SpatialRelation (OtherShape, Tolerance, Flags)

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
OtherShape Обязательный [IVSHAPE] Другой объект Shape , участвующий в сравнении.
Допуск Обязательный Double Расстояние во внутренних единицах рисования относительно координатного пространства, определенного родительским объектом объекта Shape .
Flags Обязательный Integer Флаги, влияющие на результат. Значения этого аргумента см. в разделе Примечания.

Возвращаемое значение

Целое число

Замечания

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

Аргумент Flags может быть любым сочетанием значений констант, определенных в следующей таблице. Эти константы объявляются в VisSpatialRelationFlags в библиотеке типов Visio. Используйте ячейку NoShow, чтобы определить, является ли раздел Geometry скрытым или видимым. Скрытые разделы geometry имеют значение TRUE, а видимые разделы Geometry имеют значение FALSE в ячейке NoShow.

Константа Значение Описание
visSpatialIncludeContainerShapes &H80 Включить контейнеры. По умолчанию контейнеры не включаются.
visSpatialIncludeDataGraphics &H40 Включает графические фигуры данных и их подформы. По умолчанию графические выноски данных и их подформы не включаются. Если родительская фигура сама по себе является выноской графического элемента данных, выполняется поиск между геометрией родительской фигуры и фигурами без выноски, если этот флаг не установлен.
visSpatialIncludeGuides &H2 Рассматривает раздел Геометрия руководства. По умолчанию направляющие не влияют на результат.
visSpatialIncludeHidden &H10 Зарезервировано для последующего использования. Не следует использовать.
visSpatialIgnoreVisible &H20 Не учитывает видимые разделы Geometry. По умолчанию видимые разделы Geometry влияют на результат.

Примечание.

При сравнении двух фигур свойство SpatialRelation не учитывает ширину линии, теней, концы линий, контрольных точек или точек соединения фигуры.

Пример

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

Прежде чем добавить следующий код в проект VBA, убедитесь, что на странице документа есть хотя бы одна фигура. Затем, добавив код, добавьте в документ другую фигуру.

Public Sub Document_ShapeAdded(ByVal Shape As IVShape) 
 
    Dim vsoShapeOnPage As Visio.Shape  
    Dim intTolerance As Integer 
    Dim intReturnValue As VisSpatialRelationCodes  
    Dim intFlag As VisSpatialRelationFlags  
    Dim strReturn As String 
    On Error GoTo errHandler  
 
    'Initialize tolerance argument. 
    intTolerance = 0.25  
 
    'Initialize flags argument. 
    intFlag = visSpatialIncludeHidden  
    For Each vsoShapeOnPage In ActivePage.Shapes  
 
        'Get the spatial relationship. 
        intReturnValue = Shape.SpatialRelation(vsoShapeOnPage, _  
            intTolerance, intFlag)  
 
        'Convert return code to string value. 
        Select Case intReturnValue       
            Case VisSpatialRelationCodes.visSpatialContain  
                strReturn = "Contains"  
            Case VisSpatialRelationCodes.visSpatialContainedIn  
                strReturn = "is Contained in"  
            Case VisSpatialRelationCodes.visSpatialOverlap  
                strReturn = "overlaps"  
            Case VisSpatialRelationCodes.visSpatialTouching  
                strReturn = "is touching"  
            Case Else 
                strReturn = "has no relation with"  
        End Select  
        
        'Display relationship in the shape's text. 
        vsoShapeOnPage.Text = Shape.Name & " " & strReturn & " " & _  
            vsoShapeOnPage.Name  
 
    Next  
 
errHandler:  
 
End Sub

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

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