Свойство Shape.SpatialNeighbors (Visio)
Возвращает объект Selection , представляющий фигуры, соответствующие определенным критериям по отношению к указанной фигуре. Только для чтения.
Синтаксис
expression. SpatialNeighbors (отношение, терпимость, флаги, ResultRoot)
выражение Переменная, представляющая объект Фигура.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Relation | Обязательный | Integer | Целое число, описывающее тип используемой связи. |
Допуск | Обязательный | Double | Расстояние во внутренних единицах рисования относительно пространства координат, определенного родительской фигурой. |
Flags | Обязательный | Integer | Флаги, влияющие на тип записей, возвращаемых в результатах. |
ResultRoot | Необязательный | Variant | Объект Shape , представляющий страницу или группу. |
Возвращаемое значение
Selection
Замечания
Значения аргумента Relation см. в разделе Свойства SpatialRelation .
Аргумент Flags может быть любым сочетанием значений констант, определенных в следующей таблице. Эти константы также определены в VisSpatialRelationFlags в библиотеке типов Visio.
Константа | Значение | Описание |
---|---|---|
visSpatialIncludeContainerShapes | &H80 | Включить контейнеры. По умолчанию контейнеры не включаются. |
visSpatialIncludeDataGraphics | &H40 | Включает графические фигуры данных и их подформы. По умолчанию графические выноски данных и их подформы не включаются. Если родительская фигура сама по себе является выноской графического элемента данных, выполняется поиск между геометрией родительской фигуры и фигурами без выноски, если этот флаг не установлен. |
visSpatialIncludeGuides | &H2 | Рассматривает раздел Геометрия руководства. По умолчанию направляющие не влияют на результат. |
visSpatialFrontToBack | &H4 | Элементы заказов от переднего к заднему. |
visSpatialBackToFront | &H8 | Заказы возвращаются к переднему краю. |
visSpatialIncludeHidden | &H10 | Рассматривает скрытые разделы Geometry. По умолчанию скрытые разделы Geometry не влияют на результат. |
visSpatialIgnoreVisible | &H20 | Не учитывает видимые разделы Geometry. По умолчанию видимые разделы Geometry влияют на результат. |
Используйте ячейку NoShow, чтобы определить, является ли раздел Geometry скрытым или видимым. Скрытые разделы geometry имеют значение TRUE, а видимые разделы Geometry имеют значение FALSE в ячейке NoShow.
Если параметр Relation не указан, свойство SpatialNeighbors использует все возможные связи в качестве критериев.
Начиная с Visio 2002, если flags содержит VisSpatialFrontToBack, элементы в объекте Selection , возвращаемом свойством SpatialNeighbors , упорядочиваются спереди на назад. Если задан параметр visSpatialBackToFront , возвращаемые элементы упорядочены обратно на передний план. Если этот флаг не задан или вы используете более раннюю версию Visio, порядок будет непредсказуемым. Порядок можно определить с помощью свойства Index фигур, определенных в объекте Selection .
Если не указать ResultRoot, это свойство возвращает объект Selection , представляющий фигуры, соответствующие определенным критериям по отношению к указанной фигуре. Если указать ResultRoot, это свойство возвращает объект Selection , представляющий все фигуры в объекте Shape , указанные resultRoot , которые соответствуют определенным критериям по отношению к указанной фигуре. Например, укажите ResultRoot , чтобы найти все фигуры в группе, которые находятся рядом с указанной фигурой.
Если параметр ResultRoot указан, но не находится на той же странице или в той же master, что и объект Shape, с которым вы его сравниваете, свойство SpatialNeighbors создает исключение и возвращает значение Nothing.
При сравнении двух фигур свойство SpatialNeighbors не учитывает ширину линии, теней, концы линий, контрольных точек или точек соединения фигуры.
Пример
В этом примере Microsoft Visual Basic для приложений (VBA) показано, как использовать свойство SpatialNeighbors в обработчике событий для события ShapeAdded, чтобы определить, содержится ли одна фигура в другой.
Перед добавлением следующего кода в проект VBA добавьте хотя бы одну фигуру в документ. Затем добавьте другую фигуру в рисунок, перетащив ее из набора элементов или нарисовав ее, расположив ее так, чтобы она полностью содержалась в существующей фигуре.
Public Sub Document_ShapeAdded(ByVal Shape As IVShape)
Dim vsoShapeOnPage As Visio.Shape
Dim intTolerance As Integer
Dim vsoReturnedSelection As Visio.Selection
Dim strSpatialRelation As String
Dim intSpatialRelation As VisSpatialRelationCodes
On Error GoTo errHandler
'Initialize string
strSpatialRelation = ""
'Set tolerance argument
intTolerance = 0.25
'Set Spatial Relation argument
intSpatialRelation = visSpatialContainedIn
'Get the set of spatially related shapes
'that meet the criteria set by the arguments.
Set vsoReturnedSelection = Shape.SpatialNeighbors _
(intSpatialRelation, intTolerance, 0)
'Evaluate the results.
If vsoReturnedSelection.Count = 0 Then
'No shapes met the criteria set by
'the arguments of the method.
strSpatialRelation = Shape.Name & " is not contained."
Else
'Build the positive result string.
For Each vsoShapeOnPage In vsoReturnedSelection
strSpatialRelation = strSpatialRelation & _
Shape.Name & " is contained by " & _
vsoShapeOnPage.Name & Chr$(10)
Next
End If
'Display the results on the shape added.
Shape.Text = strSpatialRelation
errHandler:
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.