Propriedade Shape.SpatialRelation (Visio)
Retorna um inteiro que representa a relação espacial de uma forma para outra forma. As duas formas devem estar na mesma página ou no mesmo mestre. Somente leitura.
Sintaxe
expressão. EspacialRelation (OtherShape, Tolerance, Flags)
expressão Uma variável que representa um objeto Shape.
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
OtherShape | Obrigatório | [IVSHAPE] | O outro objeto Shape envolvido na comparação. |
Tolerance | Obrigatório | Double | Uma distância em unidades de desenho internas com relação ao espaço da coordenada definido pelo pai do objeto Shape. |
Flags | Obrigatório | Integer | Sinalizadores que influenciam o resultado. Consulte Comentários para os valores desse argumento. |
Valor de retorno
Número inteiro
Comentários
O inteiro retornado pode ser qualquer combinação dos valores definidos em VisSpatialRelationCodes na biblioteca de tipos do Visio. A propriedade SpatialRelation retorna zero (0) se as duas formas sendo comparadas não estiverem em nenhuma das relações discutidas na tabela no tópico VisSpatialRelationCodes.
O argumento Flags pode ser qualquer combinação dos valores das constantes definidas na tabela a seguir. Essas constantes são declaradas em VisSpatialRelationFlags na biblioteca de tipos do Visio. 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.
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. |
visSpatialIncludeHidden | &H10 | Reserved for future use. Não usar. |
visSpatialIgnoreVisible | &H20 | Não considera seções Geometry visíveis. Por padrão, seções Geometry visíveis influenciam o resultado. |
Observação
Quando ela compara duas formas, a propriedade SpatialRelation 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 SpatialRelation em um manipulador de eventos para o evento ShapeAdded para determinar a relação espacial entre formas.
Antes de adicionar o código a seguir ao seu projeto VBA, verifique se há pelo menos uma forma na página de desenho. Em seguida, após adicionar o código, adicione outra forma ao desenho.
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
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.