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.

ANIDAR WITH OBJECTs

Foro público de Xailer en español
Responder
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

ANIDAR WITH OBJECTs

Mensaje por XeviCOMAS »

No recuerdo bien... se puede???

Hago referencia a un objeto
WITH OBJECT oOBJ1...
:propiedad := ...
:valor := ...
END OBJECT

Pero, dentro puedo ponet otro WITH OBJECT ???
WITH OBJECT oOBJ1...
:propiedadOBJ1 := ...
WITH OBJECT oOBJ2...
:propiedadOBJ2 := ...
//Como hago referencia al primer objeto???
//:valorOBJ2 := ::valorOBJ1 ???
END OBJECT
:valorOBJ1 := ...
END OBJECT

Un Saludo,
Xevi.
Un Saludo,
Xevi.
Manu Exposito
Mensajes: 116
Registrado: Mié Feb 08, 2006 4:41 pm

Re: ANIDAR WITH OBJECTs

Mensaje por Manu Exposito »

Mira ver esto:

Código: Seleccionar todo

WITH OBJECT oOBJ1...
    :propiedadOBJ1 := ...
    WITH OBJECT oOBJ2...
        :propiedadOBJ2 := ...
        //Como hago referencia al primer objeto???
        //:valorOBJ2 := oOBJ1:valorOBJ1 ??? // <-------------------
    END OBJECT
   :valorOBJ1 := ... 
END OBJECT

:D :o
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: ANIDAR WITH OBJECTs

Mensaje por ignacio »

Buenas tardes,

Existe la propiedad :__WithObject() que hace referencia al objeto dentro del WITH, pero sólo funciona en el primer nivel. Lo más sencillo: usar variables temporales:

Código: Seleccionar todo

WITH OBJECT o1 := T????:New()
  WITH OBJECT o2 := T????2:New()
    :cName := o1:cName
    EjecutaFuncion( o2 )
    EjecutaFunction( :__WithObject() )  // Esta línea es equivalente a la anterior
  END WITH
END WITH 
Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
Marcelo Coelho Silva
Mensajes: 269
Registrado: Sab May 31, 2008 4:49 pm
Ubicación: Brasil
Contactar:

Re: ANIDAR WITH OBJECTs

Mensaje por Marcelo Coelho Silva »

XeviCOMAS escribió:No recuerdo bien... se puede???

Hago referencia a un objeto
WITH OBJECT oOBJ1...
:propiedad := ...
:valor := ...
END OBJECT

Pero, dentro puedo ponet otro WITH OBJECT ???
WITH OBJECT oOBJ1...
:propiedadOBJ1 := ...
WITH OBJECT oOBJ2...
:propiedadOBJ2 := ...
//Como hago referencia al primer objeto???
//:valorOBJ2 := ::valorOBJ1 ???
END OBJECT
:valorOBJ1 := ...
END OBJECT

Un Saludo,
Xevi.

A Solução:

WITH OBJECT oOBJ1...
:propiedadOBJ1 := ...
WITH OBJECT oOBJ2...
:propiedadOBJ2 := ...
//Como hago referencia al primer objeto???
:valorOBJ2 := oOBJ1:valorOBJ1 ???
END OBJECT
:valorOBJ1 := ...
END OBJECT
Att.

Marcelo Coelho Silva
Brasil.
Responder