Página 1 de 1

SOBRE Eventos y clases

Publicado: Dom Nov 27, 2005 9:05 am
por Francisco Sanchez
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

SOBRE Eventos y clases

Publicado: Dom Nov 27, 2005 9:13 am
por Francisco Sanchez
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

Publicado: Lun Nov 28, 2005 9:55 am
por jasm.nospam
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
>
>

SOBRE Eventos y clases

Publicado: Lun Nov 28, 2005 10:30 am
por jfgimenez
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