وظيفة برنامج Visio VBA لمعرفة ما إذا كان هناك شكل أمام / خلف الشكل

StackOverflow https://stackoverflow.com/questions/154408

  •  03-07-2019
  •  | 
  •  

سؤال

هل هناك طريقة في Visio VBA لمعرفة ما إذا كان هناك شكل أمام أو خلف الشكل في Visio؟

وأتصور أن أكتب شيئا أن يتحقق المربع المحيط من كل شكل في صفحة لمعرفة ما اذا كان يحتل نفس المكان كما شكل بلدي. I تفضل استخدام شيئا المدمج في منذ التحقق من كل شكل يمكن أن يستغرق وقتا طويلا كما رسم يحصل المزيد والمزيد من الأشكال.

هل كانت مفيدة؟

المحلول

والخاصية Shape.SpatialRelation سوف اقول لكم ما اذا لمس شكلين. فإن الملكية Shape.Index اقول لكم الذي هو أمام أو خلف في الترتيب التصاعدي.

وهنا مثال بسيط:

Public Sub DoShapesIntersect(ByRef shape1 As Visio.Shape, ByRef shape2 As Visio.Shape)

    '// do they touch?
    If (shape1.SpatialRelation(shape2, 0, 0) <> 0) Then

        '// they touch, which one is in front?
        If (shape1.Index > shape2.Index) Then
            Debug.Print shape1.Name + " is in front of " + shape2.Name
        Else
            Debug.Print shape1.Name + " is behind " + shape2.Name
        End If
    Else
        Debug.Print "shape1 and shape2 do not touch"
    End If

End Sub

اقرأ المزيد هنا:

Shape.SpatialRelation الملكية على MSDN

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top