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.

De Form a Form

Foro público de Xailer en español
Responder
carlos
Mensajes: 126
Registrado: Mié Feb 02, 2005 7:31 pm

De Form a Form

Mensaje por carlos »

Saludos a Todos
Bueno, necesito de alguna manera saber como yo puedo por ejemplo,, llamar el
mismo objecto dataset que tengo en un formulario en otro???, no se si me
explico.
Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
quiero usar en otr formulario, para referirme a ese objecto desde otro
formulario, lo que hago es lo siguiente:
WITH OBJECT Application:oMainForm:oDSProducto
.,....
......
.....
END
pero pienso que debe de existir una mejor manera, me pueden ayudar con eso
please???
Muchas gracias una vez mas por su colaboracion
paco-ssi
Mensajes: 390
Registrado: Lun Feb 07, 2005 4:17 pm

De Form a Form

Mensaje por paco-ssi »

Carlos:
Creo que esta me la se:
Debes anteponer el nombre del formulario padre del objeto que quieras.
::oForm1:oDSProducto
Creo que es así, pero no te fies mucho que estoy empezando.
Paco V.
"Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
> Saludos a Todos
>
> Bueno, necesito de alguna manera saber como yo puedo por ejemplo,, llamar
el
> mismo objecto dataset que tengo en un formulario en otro???, no se si me
> explico.
>
> Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
> quiero usar en otr formulario, para referirme a ese objecto desde otro
> formulario, lo que hago es lo siguiente:
>
> WITH OBJECT Application:oMainForm:oDSProducto
> .,....
> ......
> .....
> END
>
> pero pienso que debe de existir una mejor manera, me pueden ayudar con eso
> please???
>
> Muchas gracias una vez mas por su colaboracion
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

De Form a Form

Mensaje por jfgimenez »

Carlos,
lo que estás haciendo es correcto. Más adelante haremos unos formularios
"especiales" que puedan contener componentes (datasources, datasets,
imagelist, etc.) y que sean visibles en toda la aplicación. Pero mientras
tanto, lo que estás haciendo está bien.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

De Form a Form

Mensaje por fredy[1] »

Hola.
O no os he entendido, o no lo se hacer, o no me sale.
Imagina la siguiente situacion:
tengo el formulario1, que abre a su vez el formulario2, que a su vez
abre el formulario 3
desde el formulario3 quiero acceder a un data del formulario1.
::oform1:cnombre no funciona, me dice que no existe TForm3:ofrom1:nombre
¿Ideas de como hacerlo?
Un saludico.
Fredy
In article <429df3fa$1@ozsrvnegro.ozlan.local>, paco-
ssi@usuarios.retecal.es says...
> Carlos:
> Creo que esta me la se:
> Debes anteponer el nombre del formulario padre del objeto que quieras.
>
> ::oForm1:oDSProducto
>
> Creo que es así­, pero no te fies mucho que estoy empezando.
>
> Paco V.
>
>
> "Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
> news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
> > Saludos a Todos
> >
> > Bueno, necesito de alguna manera saber como yo puedo por ejemplo,, llamar
> el
> > mismo objecto dataset que tengo en un formulario en otro???, no se si me
> > explico.
> >
> > Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
> > quiero usar en otr formulario, para referirme a ese objecto desde otro
> > formulario, lo que hago es lo siguiente:
> >
> > WITH OBJECT Application:oMainForm:oDSProducto
> > .,....
> > ......
> > .....
> > END
> >
> > pero pienso que debe de existir una mejor manera, me pueden ayudar con eso
> > please???
> >
> > Muchas gracias una vez mas por su colaboracion
> >
> >
>
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

De Form a Form

Mensaje por Xevi »

Fredy,
Creo que debes ponerlo sin :: y declarar Memvar al principio del Form3
Form3.prg
....
Memvar oForm1
....
....
oForm1:cText := "Prueba a ver si así te funciona!!!"
Un Saludo,
Xevi.
"Fredy" <fredy@airtel.net> escribió en el mensaje
news:[email=MPG.1d0a77dc6d51677a98970d@news.ozs.com...]MPG.1d0a77dc6d51677a98970d@news.ozs.com...[/email]
Hola.
O no os he entendido, o no lo se hacer, o no me sale.
Imagina la siguiente situacion:
tengo el formulario1, que abre a su vez el formulario2, que a su vez
abre el formulario 3
desde el formulario3 quiero acceder a un data del formulario1.
::oform1:cnombre no funciona, me dice que no existe TForm3:ofrom1:nombre
¿Ideas de como hacerlo?
Un saludico.
Fredy
In article <429df3fa$1@ozsrvnegro.ozlan.local>, paco-
ssi@usuarios.retecal.es says...
> Carlos:
> Creo que esta me la se:
> Debes anteponer el nombre del formulario padre del objeto que quieras.
>
> ::oForm1:oDSProducto
>
> Creo que es así, pero no te fies mucho que estoy empezando.
>
> Paco V.
>
>
> "Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
> news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
> > Saludos a Todos
> >
> > Bueno, necesito de alguna manera saber como yo puedo por ejemplo,,
> > llamar
> el
> > mismo objecto dataset que tengo en un formulario en otro???, no se si me
> > explico.
> >
> > Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
> > quiero usar en otr formulario, para referirme a ese objecto desde otro
> > formulario, lo que hago es lo siguiente:
> >
> > WITH OBJECT Application:oMainForm:oDSProducto
> > .,....
> > ......
> > .....
> > END
> >
> > pero pienso que debe de existir una mejor manera, me pueden ayudar con
> > eso
> > please???
> >
> > Muchas gracias una vez mas por su colaboracion
> >
> >
>
>
>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

De Form a Form

Mensaje por Xevi »

Pues no,... parece ser que así no es...
Ummm... hubiera jurado... en fin poder se puede, seguro, pero parece ser que
no sabemos lo suficiente.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje
news:[email=42a05c0a@ozsrvnegro.ozlan.local...]42a05c0a@ozsrvnegro.ozlan.local...[/email]
> Fredy,
>
> Creo que debes ponerlo sin :: y declarar Memvar al principio del Form3
>
> Form3.prg
> ...
> Memvar oForm1
> ...
> ...
> oForm1:cText := "Prueba a ver si así te funciona!!!"
>
>
> Un Saludo,
> Xevi.
>
>
> "Fredy" <fredy@airtel.net> escribió en el mensaje
> news:[email=MPG.1d0a77dc6d51677a98970d@news.ozs.com...]MPG.1d0a77dc6d51677a98970d@news.ozs.com...[/email]
> Hola.
>
> O no os he entendido, o no lo se hacer, o no me sale.
>
> Imagina la siguiente situacion:
>
> tengo el formulario1, que abre a su vez el formulario2, que a su vez
> abre el formulario 3
>
> desde el formulario3 quiero acceder a un data del formulario1.
>
> ::oform1:cnombre no funciona, me dice que no existe TForm3:ofrom1:nombre
>
>
> ¿Ideas de como hacerlo?
>
> Un saludico.
> Fredy
>
> In article <429df3fa$1@ozsrvnegro.ozlan.local>, paco-
> ssi@usuarios.retecal.es says...
>> Carlos:
>> Creo que esta me la se:
>> Debes anteponer el nombre del formulario padre del objeto que quieras.
>>
>> ::oForm1:oDSProducto
>>
>> Creo que es así, pero no te fies mucho que estoy empezando.
>>
>> Paco V.
>>
>>
>> "Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
>> news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
>> > Saludos a Todos
>> >
>> > Bueno, necesito de alguna manera saber como yo puedo por ejemplo,,
>> > llamar
>> el
>> > mismo objecto dataset que tengo en un formulario en otro???, no se si
>> > me
>> > explico.
>> >
>> > Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
>> > quiero usar en otr formulario, para referirme a ese objecto desde otro
>> > formulario, lo que hago es lo siguiente:
>> >
>> > WITH OBJECT Application:oMainForm:oDSProducto
>> > .,....
>> > ......
>> > .....
>> > END
>> >
>> > pero pienso que debe de existir una mejor manera, me pueden ayudar con
>> > eso
>> > please???
>> >
>> > Muchas gracias una vez mas por su colaboracion
>> >
>> >
>>
>>
>>
>
>
jasm.nospam
Mensajes: 203
Registrado: Vie Abr 01, 2005 9:05 am

De Form a Form

Mensaje por jasm.nospam »

Fredy,
Yo creo una data en el formulario hijo en la que meto el formulario padre:
local this := self // ojo a esto
WITH OBJECT Tform2():CreateForm()
:oPadre := this //(si pongo self es TForm2)
....
END WITH
Despues, dentro del formulario hijo me refiero a ::oPadre para lo que
necesite.
Un saludo,
Jose A. Suarez
Fredy escribió:
> Hola.
>
> O no os he entendido, o no lo se hacer, o no me sale.
>
> Imagina la siguiente situacion:
>
> tengo el formulario1, que abre a su vez el formulario2, que a su vez
> abre el formulario 3
>
> desde el formulario3 quiero acceder a un data del formulario1.
>
> ::oform1:cnombre no funciona, me dice que no existe TForm3:ofrom1:nombre
>
>
> ¿Ideas de como hacerlo?
>
> Un saludico.
> Fredy
>
> In article <429df3fa$1@ozsrvnegro.ozlan.local>, paco-
> ssi@usuarios.retecal.es says...
>
>>Carlos:
>>Creo que esta me la se:
>>Debes anteponer el nombre del formulario padre del objeto que quieras.
>>
>>::oForm1:oDSProducto
>>
>>Creo que es así­, pero no te fies mucho que estoy empezando.
>>
>>Paco V.
>>
>>
>>"Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
>>news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
>>
>>>Saludos a Todos
>>>
>>>Bueno, necesito de alguna manera saber como yo puedo por ejemplo,, llamar
>>
>>el
>>
>>>mismo objecto dataset que tengo en un formulario en otro???, no se si me
>>>explico.
>>>
>>>Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
>>>quiero usar en otr formulario, para referirme a ese objecto desde otro
>>>formulario, lo que hago es lo siguiente:
>>>
>>>WITH OBJECT Application:oMainForm:oDSProducto
>>> .,....
>>> ......
>>> .....
>>>END
>>>
>>>pero pienso que debe de existir una mejor manera, me pueden ayudar con eso
>>>please???
>>>
>>>Muchas gracias una vez mas por su colaboracion
>>>
>>>
>>
>>
>>
Xevi
Mensajes: 1706
Registrado: Jue Sep 08, 2005 12:58 pm

De Form a Form

Mensaje por Xevi »

Jose alfonso,
Pero... debería de ser mas sencillo, digo... si tenemos un Form abierto y
desde otro Form queremos accesar a este, sea no no hijo de este... se
debería de poder tratar como una variable pública, sin mas...
Al menos así es como se trata en otras GUIs... no se... mi opinion es esa.
Si al crear un Form, éste se pudiera cargar en una variable, o tomar la
variable del nombre del Form... sería así de sencillo
PUBLIC MiForm := TFrmBrowseCMOV():New():ShowModal()
y luego en cualquier Form podríamos accesar a él simplemente con
MiForm:MiDataEventoEtc...
Un Saludo,
Xevi.
"Jose Alfonso Suárez Moreno" <jasm.nospam@chochurro.com> escribió en el
mensaje news:[email=42a0700d@ozsrvnegro.ozlan.local...]42a0700d@ozsrvnegro.ozlan.local...[/email]
> Fredy,
>
> Yo creo una data en el formulario hijo en la que meto el formulario padre:
>
> local this := self // ojo a esto
>
> WITH OBJECT Tform2():CreateForm()
>
> :oPadre := this //(si pongo self es TForm2)
>
> ...
>
> END WITH
>
> Despues, dentro del formulario hijo me refiero a ::oPadre para lo que
> necesite.
>
>
> Un saludo,
>
> Jose A. Suarez
>
> Fredy escribió:
>> Hola.
>>
>> O no os he entendido, o no lo se hacer, o no me sale.
>>
>> Imagina la siguiente situacion:
>>
>> tengo el formulario1, que abre a su vez el formulario2, que a su vez abre
>> el formulario 3
>>
>> desde el formulario3 quiero acceder a un data del formulario1.
>>
>> ::oform1:cnombre no funciona, me dice que no existe TForm3:ofrom1:nombre
>>
>>
>> ¿Ideas de como hacerlo?
>>
>> Un saludico.
>> Fredy
>>
>> In article <429df3fa$1@ozsrvnegro.ozlan.local>, paco-
>> ssi@usuarios.retecal.es says...
>>
>>>Carlos:
>>>Creo que esta me la se:
>>>Debes anteponer el nombre del formulario padre del objeto que quieras.
>>>
>>>::oForm1:oDSProducto
>>>
>>>Creo que es así, pero no te fies mucho que estoy empezando.
>>>
>>>Paco V.
>>>
>>>
>>>"Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
>>>news:[email=429de264@ozsrvnegro.ozlan.local...]429de264@ozsrvnegro.ozlan.local...[/email]
>>>
>>>>Saludos a Todos
>>>>
>>>>Bueno, necesito de alguna manera saber como yo puedo por ejemplo,,
>>>>llamar
>>>
>>>el
>>>
>>>>mismo objecto dataset que tengo en un formulario en otro???, no se si me
>>>>explico.
>>>>
>>>>Miren, en el formulario principal yo defino ::oDSProducto, eso mismo lo
>>>>quiero usar en otr formulario, para referirme a ese objecto desde otro
>>>>formulario, lo que hago es lo siguiente:
>>>>
>>>>WITH OBJECT Application:oMainForm:oDSProducto
>>>> .,....
>>>> ......
>>>> .....
>>>>END
>>>>
>>>>pero pienso que debe de existir una mejor manera, me pueden ayudar con
>>>>eso
>>>>please???
>>>>
>>>>Muchas gracias una vez mas por su colaboracion
>>>>
>>>>
>>>
>>>
>>>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

De Form a Form

Mensaje por jfgimenez »

Xevi y todos,
> Si al crear un Form, éste se pudiera cargar en una variable, o tomar la
> variable del nombre del Form... sería así de sencillo
>
> PUBLIC MiForm := TFrmBrowseCMOV():New():ShowModal()
>
> y luego en cualquier Form podríamos accesar a él simplemente con
>
> MiForm:MiDataEventoEtc...
Exactamente, excepto lo de :ShowModal(), ya que entonces MiForm contendría
el resultado de ShowModal(), y no el objeto formulario. Lo correcto sería
esto:
PUBLIC oMiForm
WITH OBJECT oMiForm := TForm1():New( ... )
...
:ShowModal()
END
En cualquier caso, mi consejo es no utilizar variables PUBLICas, y usar en
su lugar DATAs dentro de algún formulario o incluso variables GLOBALes.
Si no os ha funcionado antes es simplemente porque no estabais asignando el
objeto formulario a ninguna variable para utilizarla después. No obstante, y
como aclaración:
- Application:aForms es un array que contiene todos los formularios activos
de la aplicación.
- Application:oMainForm siempre contiene el formulario principal de la
aplicación, entendiendo como tal al primer formulario que haya sido creado,
tanto si se ha mostrado o no. En el caso de que ese formulario sea
destruido, entonces ocupará su lugar el siguiente formulario de la lista.
Vamos, que oMainForm siempre coincidirá con Application:aForms[1]
- ::oParent es el padre del formulario. Es exactamente el parámetro que
pasamos al método New() al crearlo. En el ejemplo de Fredy, si oForm1 es el
formulario principal, oForm2 se crea con New( oForm1 ) y oForm3 se crea con
New( oForm2 ), entonces oForm1 == oForm2:oParent == oForm3:oParent:oParent
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder