[…] i was going to use the mouse position to do so […]
If you can use a cursor position (e.g.
GetCursorPos or position from parameters), you can also use
FindLCLControl to grab the reference of the control that is under the cursor.
But creating Mine Sweeper with graphic controls like
TShape is a bad idea. IMO the best way to do it is to write a custom control with (virtual) buttons grid and handle the basic messages like
LM_MOUSEMOVE,
LM_LBUTTONDOWN and so on. Best way, not the fastest or easiest way.