وظيفة برنامج Visio VBA لمعرفة ما إذا كان هناك شكل أمام / خلف الشكل
سؤال
هل هناك طريقة في 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
اقرأ المزيد هنا:
لا تنتمي إلى StackOverflow