Свойство 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 и обратная связь.