Propriedade Shape.SpatialNeighbors (Visio)
Retorna um objeto Selection que representa as formas que atendem a certos critérios em relação a uma forma especificada. Somente leitura.
Sintaxe
expressão. SpatialNeighbors (Relação, Tolerância, Sinalizadores, ResultRoot)
expressão Uma variável que representa um objeto Shape.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Relation | Obrigatório | Integer | Um inteiro que descreve o tipo de relação a ser usada. |
Tolerance | Obrigatório | Double | Uma distância em unidades de desenho internas com relação ao espaço da coordenada definido pela forma pai. |
Flags | Obrigatório | Integer | Sinalizadores que influenciam o tipo de entradas retornadas nos resultados. |
ResultRoot | Opcional | Variant | Um objeto Shape que representa uma página ou um grupo. |
Valor de retorno
Seleção
Comentários
Para valores do argumento Relation, consulte o tópico da propriedade SpatialRelation.
O argumento Flags pode ser qualquer combinação dos valores das constantes definidas na tabela a seguir. Estas constantes também estão definidas em VisSpatialRelationFlags na biblioteca de tipos do Visio.
Constant | Valor | Descrição |
---|---|---|
visSpatialIncludeContainerShapes | &H80 | Incluir contêineres. Por padrão, contêineres não estão incluídos. |
visSpatialIncludeDataGraphics | &H40 | Inclui formas de texto explicativo do gráfico de dados e suas subformas. Por padrão, as formas de texto explicativo do gráfico de dados e suas subformas não são incluídas. Se a própria forma pai for um texto explicativo do gráfico de dados, as pesquisas serão feitas entre a geometria da forma pai e formas não relacionadas a texto explicativo, a menos que esse sinalizador esteja definido. |
visSpatialIncludeGuides | &H2 | Considera a seção Geometry de uma guia. Por padrão, os guias não influenciam o resultado. |
visSpatialFrontToBack | &H4 | Ordena itens da frente para trás. |
visSpatialBackToFront | &H8 | Ordena itens de trás para frente. |
visSpatialIncludeHidden | &H10 | Considera seções Geometry ocultas. Por padrão, seções de Geometria ocultas não influenciam o resultado. |
visSpatialIgnoreVisible | &H20 | Não considera seções Geometry visíveis. Por padrão, seções Geometry visíveis influenciam o resultado. |
Use a célula NoShow para determinar se uma seção Geometry está oculta ou visível. Seções Geometry ocultas possuem um valor de TRUE e seções Geometry visíveis possuem um valor de FALSE na célula NoShow.
Se Relation não for especificado, a propriedade SpatialNeighbors usará toda a relação possível como critérios.
A partir do Visio 2002, se Flags contém VisSpatialFrontToBack, os itens no objeto Selection retornados pela propriedade SpatialNeighbors são ordenados de frente para trás. Se visSpatialBackToFront for definido, os itens retornados serão ordenados de trás para frente. Se esse sinalizador não estiver definido ou se você estiver usando uma versão anterior do Visio, a ordem será imprevisível. Você pode determinar a ordem usando a propriedade Index das formas identificadas no objeto Selection .
Se você não especificar ResultRoot, essa propriedade retorna um objeto Selection que representa as formas que atendem a certos critérios em relação à forma especificada. Se você especificar ResultRoot, essa propriedade retornará um objeto Selection que representa todas as formas no objeto Shape especificado por ResultRoot que atendem a determinados critérios em relação à forma especificada. Por exemplo, especifique ResultRoot para encontrar todas as formas dentro de um grupo próximas a uma forma específica.
Se ResultRoot estiver especificado, mas não estiver na mesma página ou no mesmo mestre do objeto Shape com o qual você está comparando, a propriedade SpatialNeighbors levantará uma exceção e retornará Nothing.
Quando ela compara duas formas, a propriedade SpatialNeighbors não considera a largura da linha de uma guia, as sombras, as extremidades de linha, os pontos de controle ou os pontos de conexão.
Exemplo
Este exemplo do Microsoft Visual Basic for Applications (VBA) mostra como usar a propriedade SpatialNeighbors em um manipulador de eventos para o evento ShapeAdded determinar se uma forma está contida na outra.
Antes de adicionar o código a seguir ao seu projeto VBA, adicione pelo menos uma forma ao desenho. Em seguida, adicione outra forma ao seu desenho, arrastando-a de um estêncil ou desenhando-a, posicionando-a para que ela fique completamente contida em uma forma existente.
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.