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