Página 1 de 1

ANIDAR WITH OBJECTs

Publicado: Mié Mar 01, 2017 3:25 pm
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.

Re: ANIDAR WITH OBJECTs

Publicado: Mié Mar 01, 2017 5:25 pm
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

Re: ANIDAR WITH OBJECTs

Publicado: Mié Mar 01, 2017 5:51 pm
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

Re: ANIDAR WITH OBJECTs

Publicado: Jue Mar 23, 2017 2:50 pm
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