![]() |
Saber qué procedimento tiene asignado un evento
Hola a todo el mundo
Una cosilla... que me tiene mosqueado. Quiero saber si un evento de un componente está asignado (ésto lo hago con Assigned(MiObj.OnExit) y funciona), pero además quiero saber a qué procedimiento está asignado. Inentaré explicarme :D El OnExit (p. ej.) puede estar asignado (con el inspector de objetos) a TForm1.MiObjExit, pero también a TForm1.OtroProcedimento (ya sea en el inspector de objetos o por código (MiObj.OnExit := OtroProcedimiento). He visto en la ayuda de Delphi (Procedural types in statements and expressions) que sería: if @MiObj.OnExit=@OtroProcediemiento then ...; pero no me compila (Me canta: Variable required); Y mi pregunta es : ¿puedo saber de alguna manera a cuál de ambos lo está ? Espero que "me se entienda" ;) Yo sigo investigando... Y muchas gracias :):) |
Lo más aproximado que veo que puedes hacer es algo como ésto:
Lo que puedes hacer es comprobar si es un método determinado. Es decir primero programas tu método en el form (como published) y luego puedes comprobar si está apuntando a ese. En todo caso puedes saber a qué método apunta si es que está definido como published en el form, utilizando: MethodName Algo así:
Pero sólo te devolverá el nombre si está apuntando a un método definido como published en el form (ya que se hace vía RTTI). En ese caso sí obtendrás el nombre. La clase está definida de ésta forma:
|
Gracias
Muchas Gracias
He optado por la segunda opción:
Y va perfectamente. Saludos. |
| La franja horaria es GMT +2. Ahora son las 21:36:51. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi