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
User avatar
XeviCOMAS
Posts: 521
Joined: Sat Mar 12, 2011 8:16 pm

ANIDAR WITH OBJECTs

Postby XeviCOMAS » Wed Mar 01, 2017 3:25 pm

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
Posts: 110
Joined: Wed Feb 08, 2006 4:41 pm

Re: ANIDAR WITH OBJECTs

Postby Manu Exposito » Wed Mar 01, 2017 5:25 pm

Mira ver esto:

Code: Select all

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



:D :o
User avatar
ignacio
Site Admin
Posts: 8538
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: ANIDAR WITH OBJECTs

Postby ignacio » Wed Mar 01, 2017 5:51 pm

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:

Code: Select all

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]
http://www.xailer.com
http://www.xailer.info
User avatar
Marcelo Coelho Silva
Posts: 267
Joined: Sat May 31, 2008 4:49 pm

Re: ANIDAR WITH OBJECTs

Postby Marcelo Coelho Silva » Thu Mar 23, 2017 2:50 pm

XeviCOMAS wrote: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.

Return to “Spanish”