Ok, dann brauchst Du IntersectRect nicht.
Du willst ja nur die X- und Y-Koordinate eines Puntes prüfen.
Dazu ist Deine Prüfung ja völlig in Ordnung.
Evtl. kannst Du "InRange" verwenden, damit es etwas übersichtlicher wird.
Und Du solltest eine Prozedur definieren, der Du ein (oder nacheinander alle) Shapes übergibst, die dann die Prüfung durchführt und ggf. die gewünschte Aktion veranlasst.
Man könnte auch eine neue Shape-Komponente ableiten, die quasi "selbständig" bei jeder Posititionsänderung diese Prüfung und Aktion durchführt. Dazu muss man sich mit Komponentenentwicklung beschäftigen. Das hört sich schlimmer an als es ist
, erfordert aber schon etwas Einarbeitungszeit.
Wenn Dein Projekt mit Funktionen und Prozeduren funktioniert, kannst Du Dich mal daran setzen, das ggf. in eine eigene Komponente einzubauen...