Hace poco me planteé el problema de utilizar un mismo procedimiento para procesar el evento de varios objetos, el asunto es que se puede agregar un control del evento en cuestión por cada control y a lo sumo que sea el mismo procedimiento al que se dirija, pero cuando se desea recorrer los controles para "saber" si alguno produjo un evento, eso es otra cosa.
Me explico mejor con un ejemplo:
Tengo tres botones y quiero capturar el evento click, para esto debo crear un "disparador" del evento y al menos un procedimiento al cual llame en ese caso.
Es posible dirigir ese click -para los tres botones- al mismo procedimiento y dentro de este procedimiento detectar cual control lo generó. Hasta ahí todo bien.
El lío se arma cuando se intenta dar un paso más a la generalización, es decir, reconocer que se ha generado un evento y que el padre sea el que dispara a un procedimiento para reconocer cual control hijo lo inició. Esto supone un único "disparador" y un único procedimiento.
Este problema surgió cuando intenté escribir una ayuda para cada control de la pantalla, cuando se pase el puntero del ratón sobre tal control. Existe el Hint, claro, pero si se intenta hacer que ese hint aparezca en una ubicación única de la pantalla, es otra cosa. Si mal no recuerdo lo hice hace mucho, pero no recuerdo si tuve que crear un "disparador" para cada control o no.
Saludos