Hola.
Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
es que se ejecuta el evento.
¿Hay alguna forma de preguntar si OnClick está definido sin que se ejecute?
Gracias
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Definicion de evento
-
- Mensajes: 17
- Registrado: Vie Nov 05, 2004 3:15 pm
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Definicion de evento
Paco,
Utiliza el método TComponent:EventAssigned( cEvento )
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Paco Garcia" <paco@canalfive.com> escribió en el mensaje
news:49d46667$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Hola.
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
> Gracias
>
Utiliza el método TComponent:EventAssigned( cEvento )
Un saludo
--
Ignacio Ortiz de Zúñiga
Xailer support / Soporte de Xailer
http://www.xailer.com
http://www.xailer.info
"Paco Garcia" <paco@canalfive.com> escribió en el mensaje
news:49d46667$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Hola.
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
> Gracias
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Definicion de evento
Paco,
Hay un método de tComponent que se llama Eventassigned.
IF !::EventAssigned("OnClick")
....
ELSE
....
ENDIF
Saludos,
José Luis Capel
"Paco Garcia" <paco@canalfive.com> escribió en el mensaje
news:49d46667$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Hola.
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
> Gracias
Hay un método de tComponent que se llama Eventassigned.
IF !::EventAssigned("OnClick")
....
ELSE
....
ENDIF
Saludos,
José Luis Capel
"Paco Garcia" <paco@canalfive.com> escribió en el mensaje
news:49d46667$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> Hola.
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
> Gracias
Definicion de evento
Paco,
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
Ya te han contestado, pero me gustaría añadir una cosa: es mejor llamar
siempre al evento y listo. En Xailer, llamar a un evento que no está
asignado no produce ningún error. Es más, es más rápido llamarlo y dejar que
no haga nada, que intentar leer si está asignado.
Y para terminar, en Xailer tenemos una especie de convenio con respecto a
cómo tienen que funcionar los eventos desde las clases, y es que si un
evento retorna Nil (y cuando no está asignado siempre retorna Nil), entonces
la clase puede realizar alguna acción por defecto. Pero si lo que retorna es
distinto de Nil, entonces la clase no debe hacer nada más, ya que se asume
que el evento ya ha hecho lo que tenía que hacer. Un ejemplo de esto es la
gestión del teclado (WMKeyDown y similares); si el evento (p.ej. OnKeyDown)
retorna Nil, entonces Xailer le pasa la tecla al control contenedor, que a
su vez se lo pasa a su contenedor, y así hasta que llega al formulario. Pero
si el evento retorna otro valor, entonces el proceso se para ahí, ya que se
entiende que el evento ya ha procesado todo lo que tenía que procesar. Esta
técnica permite incluso hacer algo en el evento y dejar además a Xailer
hacer más cosas.
Por supuesto no es una regla fija, ya que hay eventos y eventos, pero si es
una guía del comportamiento general de Xailer.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Cuando pregunto en el codigo if oBtn:OnClick != nil lo que se me produce
> es que se ejecuta el evento.
> ¿Hay alguna forma de preguntar si OnClick está definido sin que se
> ejecute?
Ya te han contestado, pero me gustaría añadir una cosa: es mejor llamar
siempre al evento y listo. En Xailer, llamar a un evento que no está
asignado no produce ningún error. Es más, es más rápido llamarlo y dejar que
no haga nada, que intentar leer si está asignado.
Y para terminar, en Xailer tenemos una especie de convenio con respecto a
cómo tienen que funcionar los eventos desde las clases, y es que si un
evento retorna Nil (y cuando no está asignado siempre retorna Nil), entonces
la clase puede realizar alguna acción por defecto. Pero si lo que retorna es
distinto de Nil, entonces la clase no debe hacer nada más, ya que se asume
que el evento ya ha hecho lo que tenía que hacer. Un ejemplo de esto es la
gestión del teclado (WMKeyDown y similares); si el evento (p.ej. OnKeyDown)
retorna Nil, entonces Xailer le pasa la tecla al control contenedor, que a
su vez se lo pasa a su contenedor, y así hasta que llega al formulario. Pero
si el evento retorna otro valor, entonces el proceso se para ahí, ya que se
entiende que el evento ya ha procesado todo lo que tenía que procesar. Esta
técnica permite incluso hacer algo en el evento y dejar además a Xailer
hacer más cosas.
Por supuesto no es una regla fija, ya que hay eventos y eventos, pero si es
una guía del comportamiento general de Xailer.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info