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.

Duda eventos Xailer

Foro de Xailer profesional en español
Responder
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Duda eventos Xailer

Mensaje por buzonjmartial »

Buenas tardes,

Necesitaría saber un poco más, como funcionan los eventos en xailer.

Querría saber qué tipo de datos son, porque con valtype( oBrw:onChange) por ejemplo, me devuelve "U". Es para por ejemplo, guardar su contenido en una variable y más tarde, volverlo a asignar.
Otra cosa que no sé como hacer, es desactivarlos y activarlos cuando quiera. Hay partes de la aplicación, en la que quiero modificar un Browse por ejemplo, y no quiero que esté llamando continuamente al onChange hasta que yo lo decida.

Si me podéis echar una mano, os lo agradecería.

Un Saludo,
Joaquín Martínez
Un Saludo,
Joaquín Martínez
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Duda eventos Xailer

Mensaje por jfgimenez »

Joaquín,

los eventos son un tipo de dato especial, que sólo se pueden asignar y ejecutar. No se pueden leer, por lo tanto lo que mencionas de leer su valor para guardarlo no funciona. Es más, cuando pones ValType( oBrw:OnChange ), en realidad estás disparando el evento, y el resultado es el que se está evaluando con valtype(). Te devuelve "U" porque seguramente terminas el evento con RETURN Nil

Para lo que comentas de controlar el OnChange, tienes dos opciones:

1) Asignar Nil al evento para desactivarlo y volver a asignarlo cuando quieras que vuelva a funcionar

2) Dentro del evento, controlar con un IF/ENDIF el código que quieres que se ejecute o no en cada momento
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Duda eventos Xailer

Mensaje por buzonjmartial »

Buenos días Jose,

Podría hacer lo de asignarle NIL, pero el problema está en que no puedo leer el valor que tenía, para cuando necesite activarlo de nuevo, asignarle ese valor.

Estaría bien implementar en Xailer una manera de activarlo/desactivarlo, tipo onChange:lenabled := T/F

Gracias,
Un Saludo,
Joaquín Martínez
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Re: Duda eventos Xailer

Mensaje por jfgimenez »

Joaquín,

perdona el retraso. No es posible lo que pides. El sistema de eventos de Xailer se diseño así precísamente por su rendimiento.

No obstante, podrías enviar el evento a un método o función tuya y decidir ahí qué haces. P.ej., puedes sobrecargar la clase y añadir la propiedad lFireOnChange, y en el código del evento comprobar su valor para ejecutar o no el código correspondiente. Incluso podrías hacer que el código del evento ejecute un bloque de código que esté guardado en :Cargo o en otro sitio y meter en ese bloque de código lo que quieras hacer.

En definitiva, hay varias formas de enfocarlo, pero lo que no se puede cambiar es el comportamiento de los eventos en Xailer. Si intentáramos modificarlo nos cargaríamos todas las ventajas que tiene y que nos llevaron a hacerlo así.
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
buzonjmartial
Mensajes: 100
Registrado: Vie Abr 10, 2009 11:02 pm

Re: Duda eventos Xailer

Mensaje por buzonjmartial »

Gracias Jose,

Ya implemento otra de las soluciones posibles.
Un Saludo,
Joaquín Martínez
Responder