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.