Wie erhält man ein Steuerelement, das sich unter einem anderen Steuerelement befindet?

Ich versuche, zum Spaß einen einfachen Karteneditor zu erstellen, der aus einer Scrollbox und einer Paintbox besteht (um das Raster zu zeichnen).

Im OnMouseDown-Ereignis für die Paintbox erstelle ich zur Laufzeit Bilder und füge sie in die Scrollbox ein. Die Gitter-Paintbox wird über die Bilder gezeichnet (denn wenn das Gitter auf der Rückseite wäre, würde es einfach nicht gut aussehen).

Hier ist ein Beispielbild:

Meine Frage würde zwei meiner Probleme in einem lösen.

Ich muss in der Lage sein, die Bilder zur Laufzeit per Drag & Drop zu verschieben.Ich muss auch in der Lage sein, die X- und Y-Position des Bildes als Information anzuzeigen.

Hier liegt mein Problem, um die obigen Probleme zu lösen, muss ich zuerst das Bild unter den Mauszeiger bekommen. Da ich mein Gitter (Paintbox) über die Bilder male, wird der Cursor immer nur das Paintbox-Gitter und nicht die darunter liegenden Bilder sehen.

Ich habe mit dem Kopieren des Paintbox-Rasters auf ein TImage experimentiert, aber es kam alles falsch heraus und mir gingen die Speicherfehler aus. Die Karten können sehr groß sein, daher ist es aufgrund des Speichers und der Einschränkungen usw. nicht ideal, das Raster auf eine Bitmap zu legen.

Das Gitter muss oben sein, sonst würde es ungefähr so ​​aussehen:

Was das Gitter verbirgt, und ich möchte nicht, dass das passiert.

Also, wie kann ich mit FindVCLWindow oder ähnlichem an der Paintbox vorbei sehen und zu den Bildern darunter gelangen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage