Me estoy creando un lote de "componentes" en ObjectPascal en FreePascal.
Me gustaría saber cómo puedo hacer mi propio evento "OnClick", como en Delphi.
Sé manejar las propiedades (PROPERTY) y conozco los punteros a procedimientos y funciones. Lo que no sé es cómo hacer para que en todo momento, mi programa esté viendo si e ratón está sobre algún "componente" o no.
Pd.: todos mis "componentes" tienen los campos PosicionX, PosicionY, Ancho y Largo, todos BYTE.
Me gustaría poder hacer algo tipo:
PROVATE
(...)
fOnClick:PROCEDURE(sender:TObject);
(...)
PUBLIC
(...)
PROPERTY OnClick:PROCEDURE(sender:TObject) READ fOnClick WRITE fOnClick;
(...)
Lo del ratón, así a lo "bruto" lo lleov haciendo tipo
"REPEAT
GetMouseEvent(estadoraton);
UNTIL raton_sobre_comonente;
donde raton_sobre_componente hace una burrada de AND y OR para ver que el mouse está sobre alguno de todos los componentes, que encima, tengo que poner a mano. Es muy "de piedra", y quiero saber cómo lo hace Delphi, por eemplo, para poder hacerlo yo a mi antojo.
Gracias de antemano