ControlAtPos es un método de TWinControl que te devuelve el control hijo bajo el cursor. Si tú aplicas este método en el formulario, entonces sólo encontrará al panel porque los otros controles no son hijos del formulario sino del panel. Tendrías entonces que usar Panel.ControlAtPos.
En general tendrías que armarte una función recursiva que se vaya adentrando en los hijos de los hijos hasta que ya no haya descendencia.
// Saludos
|