Ver Mensaje Individual
  #1  
Antiguo 27-05-2004
Sonic Sonic is offline
Miembro
 
Registrado: may 2004
Posts: 40
Reputación: 0
Sonic Va por buen camino
Unhappy Usar eventos en un VCL

Tengo diseñado una primera versión funcional de un TRichEdit que reconoce la sintaxis de lo que se esta escribiendo y resalta mediante el formato del texto escrito diversas secciones del texto. Se me ocurrió que con este código podría crear un componente VCL para poder usarlo en otros proyectos. Pero no he conseguido realizar una buena gestión de los eventos. Me explico:
En mi componente uso eventos como OnSelectionChange y OnChange, pero el en VCl no sé muy bien como hacer uso de esto. Ya que si suplanto el manejador del evento, el usuario final de mi componente no podrá usarlo.

La solución que encontré fue suplantar el proceso WndProc y esperar a recibir un mensaje concreto (que sinceramente no se cuál es 45109) pero, a partir del cual puedo compobar si el usuario final ha colocado un manejador de evento, si es así tomo la dirección de este manejador y lo suplanto por una función propia que ejecuta el código que yo necesito y posteriormente usa el puntero para llamar a la función del usuario.

Me pareció una buena solución, de hecho es justo lo que necesito, pero lo que no sabía es que el componente VCL se ejecuta cuando estás en fase de diseño de la aplicación, borrando la casilla del inspector de objetos en la se pone el nombre de la función que el usuario quiere que responda. En principio se comporta bien pero si guardas el proyecto ya se guarda con esa casilla borrada y mi componente piensa que el usuario no ha asignado ninguna funcion y por tanto solo ejecuta la interna.

Por favor, cualquier idea al respecto me resultará útil. Gracias
Responder Con Cita