Jak uzyskać kontrolkę znajdującą się pod inną kontrolką?

Próbuję stworzyć podstawowy edytor map dla zabawy, który składa się z scrollboxa i paintboxa (aby narysować siatkę).

W zdarzeniu OnMouseDown dla paintboksa tworzę obrazy w czasie wykonywania i dodaję je do scrollboxa, paintbox siatki jest namalowany nad obrazami (ponieważ jeśli siatka była z tyłu, to po prostu nie wyglądałaby dobrze).

Oto przykładowy ekran:

Moje pytanie rozwiąże dwa z moich problemów w jednym.

Muszę być w stanie przeciągać i upuszczać (przesuwać) obrazy w czasie wykonywania.Muszę też być w stanie uzyskać pozycję X i Y obrazu, aby wyświetlić go jako informację.

Oto, gdzie leży mój problem, aby rozwiązać powyższe problemy, najpierw muszę uzyskać obraz pod kursorem myszy. Ale ponieważ maluję siatkę (paintbox) nad obrazami, kursor będzie zawsze „widział” siatkę paintboksa, a nie obrazy bazowe.

Poeksperymentowałem z kopiowaniem siatki paintboxa do TImage, ale wszystko poszło źle i zabrakło mi pamięci. Rozmiar map może być dość duży, więc umieszczenie siatki na mapie bitowej nie jest idealne ze względu na pamięć i ograniczenia itp.

Siatka musi znajdować się na górze, w przeciwnym razie wyglądałoby to mniej więcej tak:

Która ukrywa siatkę i nie chcę, żeby tak się stało.

Więc jak mogę zobaczyć obok paintboksa i dostać się do zdjęć poniżej, używając FindVCLWindow lub czegoś podobnego?

questionAnswers(1)

yourAnswerToTheQuestion