Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Devuelve un número entero que representa la relación espacial entre dos formas. Ambas formas deben estar en la misma página o en el mismo patrón. Solo lectura.
Sintaxis
expresión. SpatialRelation (OtherShape, Tolerance, Flags)
expresión Variable que representa un objeto Shape.
Parameters
| Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
|---|---|---|---|
| OtherShape | Obligatorio | [IVSHAPE] | El otro objeto Shape implicado en la comparación. |
| Tolerance | Obligatorio | Double | Distancia expresada en unidades de dibujo internas con respecto al espacio de coordenadas definido por el objeto principal del objeto Shape. |
| Flags | Obligatorio | Integer | Marcas que influyen en el resultado. Vea Comentarios para obtener los valores de este argumento. |
Valor devuelto
Entero
Observaciones
El entero devuelto puede ser cualquier combinación de los valores definidos en VisSpatialRelationCodes en la biblioteca de tipos de Visio. La propiedad SpatialRelation devuelve el valor cero (0) si las dos formas comparadas no mantienen ninguna de las relaciones descritas en la tabla del tema VisSpatialRelationCodes.
El argumento Flags puede estar formado por cualquier combinación de valores de las constantes definidas en la tabla siguiente. Estas constantes se declaran en VisSpatialRelationFlags en la biblioteca de tipos de Visio. Para determinar si una sección de geometría está oculta o visible, utilice la celda NoShow. Las secciones de geometría ocultas tienen el valor TRUE y las visibles el valor FALSE en la celda NoShow.
| Constante | Valor | Descripción |
|---|---|---|
| visSpatialIncludeContainerShapes | &H80 | Se incluyen los contenedores. De forma predeterminada, los contenedores no se incluyen. |
| visSpatialIncludeDataGraphics | &H40 | Incluye las formas de llamada de gráficos de datos y sus subformas. De forma predeterminada, no se incluyen las formas de llamada de gráficos de datos ni sus subformas. Si la forma primaria es una llamada de gráfico de datos, las búsquedas se realizan entre la geometría de la forma primaria y las formas que no son de llamada, a menos que se establezca esta marca. |
| visSpatialIncludeGuides | &H2 | Se tiene en cuenta la sección de geometría de una guía. De forma predeterminada, las guías no influyen en el resultado. |
| visSpatialIncludeHidden | &H10 | Reservado para uso futuro. No usar. |
| visSpatialIgnoreVisible | &H20 | No se tienen en cuenta las secciones de geometría visibles. De forma predeterminada, las secciones de geometría visibles influyen en el resultado. |
Nota:
Cuando compara dos formas, la propiedad SpatialRelation no tiene en cuenta el grosor de la línea, las sombras, los extremos de línea, los puntos de control ni los puntos de conexión de la forma.
Ejemplo
En este ejemplo de Microsoft Visual Basic para Aplicaciones (VBA) se muestra cómo usar la propiedad SpatialRelation en un controlador de eventos para el evento ShapeAdded a fin de determinar la relación espacial entre formas.
Antes de agregar el código siguiente al proyecto vba, asegúrese de que haya al menos una forma en la página de dibujo. A continuación, después de agregar el código, agregue otra forma al dibujo.
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.