En una clase de mantenimiento, como tengo varios metodos que varian en
funcion del apartado del programa, los he creado como eventos y desde donde
la llamo los asigno por ejemplo :
CLASE LLAMANTE :
WITH OBJECT TMantenimiento():New()
.......
:Build_Report := { |lPreview,lSetup|
::Build_Report(lPreview,lSetup) }
END WITH
y mas abajo en esta clase llamante :
METHOD Build_Report( lPreview, lSetup )
..........
Bueno pues en la clase TMAntenimiento tengo un popup en el cual una de sus
opciones llama a ::Build_Report( .T., .F. ) y poniendo un logdebug en el
metodo build_report de la clase llamante me he fijado de que el primer
parametro lo recibe vacio, ni .T. ni .F..
En TMantenimiento declare ::Build_report como EVENT Build_report( lPreview,
lSetup ).
¿ Que estoy haciendo mal ?
Un saludo
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.
SOBRE Eventos y clases
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
-
- Mensajes: 532
- Registrado: Mié Feb 09, 2005 6:20 pm
SOBRE Eventos y clases
Puede ser que los eventos siempre reciban como primer parametro un
oSender???? he hecho algunas pruebas y parece ser que asi es, podriais
aclararme esto?
Un saludo
oSender???? he hecho algunas pruebas y parece ser que asi es, podriais
aclararme esto?
Un saludo
-
- Mensajes: 203
- Registrado: Vie Abr 01, 2005 9:05 am
SOBRE Eventos y clases
Paco,
Sí.
oSender se envía siempre aunque no pases parámetros.
Saludos
Jose A. Suarez
Francisco Sanchez escribió:
> Puede ser que los eventos siempre reciban como primer parametro un
> oSender???? he hecho algunas pruebas y parece ser que asi es, podriais
> aclararme esto?
>
> Un saludo
>
>
Sí.
oSender se envía siempre aunque no pases parámetros.
Saludos
Jose A. Suarez
Francisco Sanchez escribió:
> Puede ser que los eventos siempre reciban como primer parametro un
> oSender???? he hecho algunas pruebas y parece ser que asi es, podriais
> aclararme esto?
>
> Un saludo
>
>
SOBRE Eventos y clases
Paco,
> En una clase de mantenimiento, como tengo varios metodos que varian en
> funcion del apartado del programa, los he creado como eventos y desde
> donde la llamo los asigno por ejemplo :
>
> CLASE LLAMANTE :
>
> WITH OBJECT TMantenimiento():New()
> .......
> :Build_Report := { |lPreview,lSetup|
> ::Build_Report(lPreview,lSetup) }
> END WITH
>
> y mas abajo en esta clase llamante :
>
> METHOD Build_Report( lPreview, lSetup )
> .........
Si lo tienes desarrollado como método, lo mejor es que lo asignes así:
:Build_Report := "Build_Report"
es decir, asígnale solamente el nombre del método, y te funcionará más
rápido y usando menos memoria.
> Bueno pues en la clase TMAntenimiento tengo un popup en el cual una de sus
> opciones llama a ::Build_Report( .T., .F. ) y poniendo un logdebug en el
> metodo build_report de la clase llamante me he fijado de que el primer
> parametro lo recibe vacio, ni .T. ni .F..
>
> En TMantenimiento declare ::Build_report como EVENT Build_report(
> lPreview, lSetup ).
En los eventos, hagas lo que hasgas, el primer parámetro SIEMPRE es oSender.
Da igual que lo declares o no; es más, tú no tienes que pasarlo, ya se
encarga Xailer. Y como recordatorio, oSender es siempre el objeto que
dispara el evento; en este caso, será el objeto desde donde lo estás
llamando.
--
Un saludo,
José F. Giménez
> En una clase de mantenimiento, como tengo varios metodos que varian en
> funcion del apartado del programa, los he creado como eventos y desde
> donde la llamo los asigno por ejemplo :
>
> CLASE LLAMANTE :
>
> WITH OBJECT TMantenimiento():New()
> .......
> :Build_Report := { |lPreview,lSetup|
> ::Build_Report(lPreview,lSetup) }
> END WITH
>
> y mas abajo en esta clase llamante :
>
> METHOD Build_Report( lPreview, lSetup )
> .........
Si lo tienes desarrollado como método, lo mejor es que lo asignes así:
:Build_Report := "Build_Report"
es decir, asígnale solamente el nombre del método, y te funcionará más
rápido y usando menos memoria.
> Bueno pues en la clase TMAntenimiento tengo un popup en el cual una de sus
> opciones llama a ::Build_Report( .T., .F. ) y poniendo un logdebug en el
> metodo build_report de la clase llamante me he fijado de que el primer
> parametro lo recibe vacio, ni .T. ni .F..
>
> En TMantenimiento declare ::Build_report como EVENT Build_report(
> lPreview, lSetup ).
En los eventos, hagas lo que hasgas, el primer parámetro SIEMPRE es oSender.
Da igual que lo declares o no; es más, tú no tienes que pasarlo, ya se
encarga Xailer. Y como recordatorio, oSender es siempre el objeto que
dispara el evento; en este caso, será el objeto desde donde lo estás
llamando.
--
Un saludo,
José F. Giménez