Ejecutar un metodo de un formulario desde otro formulario

3,434 views
Skip to first unread message

Julio Rossi

unread,
Aug 17, 2010, 9:14:02 AM8/17/10
to publice...@googlegroups.com
Hola grupo!
¿Es posible ejecutar un método de un formulario desde otro (VFP9)?
Es decir, tengo el formulario A y desde un botón quiero ejecutar el método Setall del formulario B.
Como cuando uno hace DO Mifuncion IN Miprograma with Misparametros.

Un saludo!!

Julio Rossi
VFP 9 - SP2


Luis Mata

unread,
Aug 17, 2010, 10:03:20 AM8/17/10
to publice...@googlegroups.com
FOR I=1 TO _SCREEN.FormCount

FOR EACH myForm As Form IN _SCREEN.FORMS

IF myForm.name = 'minombreform'

myForm.mimetodo()

endif

ENDFOR

NEXT I


----- Original Message -----
From: Julio Rossi
To: publice...@googlegroups.com
Sent: Tuesday, August 17, 2010 8:14 AM
Subject: [vfp] Ejecutar un metodo de un formulario desde otro formulario


Hola grupo!
�Es posible ejecutar un m�todo de un formulario desde otro (VFP9)?
Es decir, tengo el formulario A y desde un bot�n quiero ejecutar el m�todo

Julio Rossi

unread,
Aug 17, 2010, 10:08:22 AM8/17/10
to publice...@googlegroups.com
Gracias Luis, probar� lo que me indicas.
Un saludos cordial.


El 17/08/2010 11:03 a.m., Luis Mata escribi�:

Julio Rossi

unread,
Aug 17, 2010, 10:15:07 AM8/17/10
to publice...@googlegroups.com
No, no mire bien la soluci�n. No es lo que necesito.
Tal vez me haya explicado mal, pero el formulario B no esta instanciado,
por lo tanto no existe como objeto.

Lo que necesito es ejecutar un m�todo de ese formulario que a�n no fue
instanciado.
Como cuando uno utiliza el DO para llamar a una funci�n de otro PRG.

Un saludo!

El 17/08/2010 11:03 a.m., Luis Mata escribi�:

extremo

unread,
Aug 17, 2010, 10:19:37 AM8/17/10
to Comunidad de Visual Foxpro en Español
Julio

Si el form no esta instanciado entonces no se puede.

La unica forma para llamar un metodo de un objeto es instanciandolo.
Eso es regla general para todos los lenguajes.

Bendiciones

Julio Rossi

unread,
Aug 17, 2010, 10:36:50 AM8/17/10
to publice...@googlegroups.com
Gracias Extremo

Me estaba pareciendo porque no encontraba forma ni encontr� informaci�n
de lo mismo.
Pens� que el formulario pod�a tratarse como un PRG y llamar a alguno de
sus m�todos.
Muchas gracias de nuevo.

Un saludo cordial.


El 17/08/2010 11:19 a.m., extremo escribi�:

IVAN MARTINEZ

unread,
Aug 17, 2010, 11:27:21 AM8/17/10
to publice...@googlegroups.com
Lo mejor es que ese tipo de formulario de donde quieres ejecutar lo
conviertas en una clase y asi ya lo puedes manipular.
ivan

>>>-----Mensaje original-----
>>>De: publice...@googlegroups.com
>>>[mailto:publice...@googlegroups.com] En nombre de Julio Rossi
>>>Enviado el: Martes, 17 de Agosto de 2010 09:45 a.m.
>>>Para: publice...@googlegroups.com
>>>Asunto: Re: [vfp] Ejecutar un metodo de un formulario desde
>>>otro formulario
>>>
>>>No, no mire bien la solución. No es lo que necesito.


>>>Tal vez me haya explicado mal, pero el formulario B no esta
>>>instanciado, por lo tanto no existe como objeto.
>>>

>>>Lo que necesito es ejecutar un método de ese formulario que
>>>aún no fue instanciado.
>>>Como cuando uno utiliza el DO para llamar a una función de otro PRG.


>>>
>>>Un saludo!
>>>
>>>
>>>
>>>El 17/08/2010 11:03 a.m., Luis Mata escribió:
>>>> FOR I=1 TO _SCREEN.FormCount
>>>>
>>>> FOR EACH myForm As Form IN _SCREEN.FORMS
>>>>
>>>> IF myForm.name = 'minombreform'
>>>>
>>>> myForm.mimetodo()
>>>>
>>>> endif
>>>>
>>>> ENDFOR
>>>>
>>>> NEXT I
>>>>
>>>>
>>>> ----- Original Message ----- From: Julio Rossi
>>>> To: publice...@googlegroups.com
>>>> Sent: Tuesday, August 17, 2010 8:14 AM
>>>> Subject: [vfp] Ejecutar un metodo de un formulario desde otro
>>>> formulario
>>>>
>>>>
>>>> Hola grupo!

>>>> ¿Es posible ejecutar un método de un formulario desde otro (VFP9)?
>>>> Es decir, tengo el formulario A y desde un botón quiero
>>>ejecutar el

>>>> método Setall del formulario B.

Julio Rossi

unread,
Aug 17, 2010, 11:42:26 AM8/17/10
to publice...@googlegroups.com
Gracias Ivan por la sugerencia.
Un saludo!


El 17/08/2010 12:27 p.m., IVAN MARTINEZ escribi�:


> Lo mejor es que ese tipo de formulario de donde quieres ejecutar lo
> conviertas en una clase y asi ya lo puedes manipular.
> ivan
>
>>>> -----Mensaje original-----
>>>> De: publice...@googlegroups.com
>>>> [mailto:publice...@googlegroups.com] En nombre de Julio Rossi
>>>> Enviado el: Martes, 17 de Agosto de 2010 09:45 a.m.
>>>> Para: publice...@googlegroups.com
>>>> Asunto: Re: [vfp] Ejecutar un metodo de un formulario desde
>>>> otro formulario
>>>>

>>>> No, no mire bien la soluci�n. No es lo que necesito.


>>>> Tal vez me haya explicado mal, pero el formulario B no esta
>>>> instanciado, por lo tanto no existe como objeto.
>>>>

>>>> Lo que necesito es ejecutar un m�todo de ese formulario que

>>>> a�n no fue instanciado.
>>>> Como cuando uno utiliza el DO para llamar a una funci�n de otro PRG.
>>>>
>>>> Un saludo!
>>>>
>>>>
>>>>
>>>> El 17/08/2010 11:03 a.m., Luis Mata escribi�:


>>>>> FOR I=1 TO _SCREEN.FormCount
>>>>>
>>>>> FOR EACH myForm As Form IN _SCREEN.FORMS
>>>>>
>>>>> IF myForm.name = 'minombreform'
>>>>>
>>>>> myForm.mimetodo()
>>>>>
>>>>> endif
>>>>>
>>>>> ENDFOR
>>>>>
>>>>> NEXT I
>>>>>
>>>>>
>>>>> ----- Original Message ----- From: Julio Rossi
>>>>> To: publice...@googlegroups.com
>>>>> Sent: Tuesday, August 17, 2010 8:14 AM
>>>>> Subject: [vfp] Ejecutar un metodo de un formulario desde otro
>>>>> formulario
>>>>>
>>>>>
>>>>> Hola grupo!

>>>>> �Es posible ejecutar un m�todo de un formulario desde otro (VFP9)?
>>>>> Es decir, tengo el formulario A y desde un bot�n quiero
>>>> ejecutar el

>>>>> m�todo Setall del formulario B.

Hugo C.

unread,
Aug 17, 2010, 12:00:35 PM8/17/10
to Comunidad de Visual Foxpro en Español
Puedes intentar de esta manera :

LOCAL loMiForma AS Form
DO FORM miFormulario NAME loMiForma NOSHOW

*:: y aqui puede llamar al metodo

loMiForma.MiMetodo(Parametro1)

loMiForma = null

Saludos.

Alfonso Arias Lemas

unread,
Aug 17, 2010, 2:01:27 PM8/17/10
to publice...@googlegroups.com
Si cuando cargas el formulario A en el Init colocas
 
VarPublica=thisform
 
despues ene l formulario B puedes hacer referencia al formulario A diciendo:
 
VarPublica.caption="Mude el titulo de A"
 
Saludos,
   Alfonso
 


De: Julio Rossi <jro...@sys-ilt.com.ar>
Para: publice...@googlegroups.com
Enviado: mar,17 agosto, 2010 12:14
Asunto: [vfp] Ejecutar un metodo de un formulario desde otro formulario

Walter R. Ojeda Valiente

unread,
Aug 17, 2010, 2:03:44 PM8/17/10
to publice...@googlegroups.com
Hola Julio

Sí que se puede llamar a métodos y a propiedades de un form desde otro form. La forma de hacerlo es la siguiente:

- El form que tiene la propiedad o método al cual deseas acceder debe estar abierto
- Si no quieres que esté visible, puedes abrirlo con la propiedad VISIBLE = .F.
- Cuando sales de ese form lo haces con ThisForm.Hide(), no con ThisForm.Release(), para que sus métodos y propiedades puedan ser accedidos externamente

Lo llamas de la siguiente manera:

do form CLIENTES Name formClientes

mientras la variable formClientes esté dentro del alcance, podrás acceder a las propiedades y métodos del form CLIENTES

Por ejemplo:

Private formClientes

do form CLIENTES Name formClientes

formClientes.INIT()     && Se ejecuta un método

=MessageBox(formClientes.Caption)     && Obtienes el valor de una propiedad

formClientes.Width = 800     && Cambias el valor de una propiedad

Saludos.

Walter.



> Date: Tue, 17 Aug 2010 11:36:50 -0300
> From: jro...@sys-ilt.com.ar
> To: publice...@googlegroups.com
> Subject: Re: [vfp] Re: Ejecutar un metodo de un formulario desde otro formulario
>
> Gracias Extremo
>
> Me estaba pareciendo porque no encontraba forma ni encontré información
> de lo mismo.
> Pensé que el formulario podía tratarse como un PRG y llamar a alguno de
> sus métodos.

Alfonso Arias Lemas

unread,
Aug 17, 2010, 2:08:41 PM8/17/10
to publice...@googlegroups.com
Pues guarda el formulario como una clase y despues creas el objeto sin mostrarlo y puedes trabajar con el.
Utilizas

CREATEOBJECT

 

Saludos,

   Alfonso

 


Enviado: mar,17 agosto, 2010 13:15
Asunto: Re: [vfp] Ejecutar un metodo de un formulario desde otro formulario

No, no mire bien la solución. No es lo que necesito.


Tal vez me haya explicado mal, pero el formulario B no esta instanciado,
por lo tanto no existe como objeto.

Lo que necesito es ejecutar un método de ese formulario que aún no fue
instanciado.
Como cuando uno utiliza el DO para llamar a una función de otro PRG.

Un saludo!





El 17/08/2010 11:03 a.m., Luis Mata escribió:
> FOR I=1 TO _SCREEN.FormCount
>
> FOR EACH myForm As Form IN _SCREEN.FORMS
>
> IF myForm.name = 'minombreform'
>
> myForm.mimetodo()
>
> endif
>
> ENDFOR
>
> NEXT I
>
>
> ----- Original Message ----- From: Julio Rossi
> To: publice...@googlegroups.com
> Sent: Tuesday, August 17, 2010 8:14 AM
> Subject: [vfp] Ejecutar un metodo de un formulario desde otro formulario
>
>
> Hola grupo!

> ¿Es posible ejecutar un método de un formulario desde otro (VFP9)?
> Es decir, tengo el formulario A y desde un botón quiero ejecutar el

> método Setall del formulario B.

Walter R. Ojeda Valiente

unread,
Aug 17, 2010, 2:20:28 PM8/17/10
to publice...@googlegroups.com
Hola Hugo C.

Yo accedía a los métodos y propiedades de un form usando otra técnica, pero la que tú usas me gusta más, es más sencilla, será más útil para la mayoría de los casos.

Saludos.

Walter.




> Date: Tue, 17 Aug 2010 09:00:35 -0700
> Subject: [vfp] Re: Ejecutar un metodo de un formulario desde otro formulario
> From: hcch...@gmail.com
> To: publice...@googlegroups.com

extremo

unread,
Aug 17, 2010, 2:27:54 PM8/17/10
to Comunidad de Visual Foxpro en Español
Son buenas las sugerencias que han dado pero en todos los ejemplos el
objeto lo instancian

Bendiciones

Luis Dalmasso

unread,
Aug 17, 2010, 2:29:32 PM8/17/10
to publice...@googlegroups.com

Perdon, pero va en la linea de esta consulta, había una manera de ejecutar un form dentro de un container de otro form, alguien la tiene a mano?

 

Gracias

Luis Dalmasso

Hugo C.

unread,
Aug 17, 2010, 3:16:04 PM8/17/10
to Comunidad de Visual Foxpro en Español
Claro que dependiendo del comportamiento del form
que se esta llamando (instanciando), pueden salir algunos "problemas".

Saludos.

On 17 ago, 12:20, "Walter R. Ojeda Valiente" <w...@hotmail.com> wrote:
> Hola Hugo C.
>
> Yo accedía a los métodos y propiedades de un form usando otra técnica, pero la que tú usas me gusta más, es más sencilla, será más útil para la mayoría de los casos.
>
> Saludos.
>
> Walter.
>
>
>
> > Date: Tue, 17 Aug 2010 09:00:35 -0700
> > Subject: [vfp] Re: Ejecutar un metodo de un formulario desde otro formulario
> > From: hcchav...@gmail.com
> > To: publice...@googlegroups.com
>
> > Puedes intentar de esta manera :
>
> > LOCAL loMiForma AS Form
> > DO FORM miFormulario NAME loMiForma NOSHOW
>
> > *::  y aqui puede llamar al metodo
>
> > loMiForma.MiMetodo(Parametro1)
>
> > loMiForma = null
>
> > Saludos.
>
> > On 17 ago, 07:14, Julio Rossi <jro...@sys-ilt.com.ar> wrote:
> > > Hola grupo!
> > > ¿Es posible ejecutar un método de un formulario desde otro (VFP9)?
> > > Es decir, tengo el formulario A y desde un botón quiero ejecutar el método Setall del formulario B.
> > > Como cuando uno hace DO Mifuncion IN Miprograma with Misparametros.
> > > Un saludo!!
> > > Julio Rossi
> > > VFP 9 - SP2- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Victor Espina

unread,
Aug 18, 2010, 11:50:06 AM8/18/10
to Comunidad de Visual Foxpro en Español
La mejor solucion es, como te han dicho, convertir la forma en una
clase de modo que puedas instanciarla y ejecutar el metodo
manualmente.

Otra forma de lograr esto sin convertir la forma en una clase seria
poner esto en el Init del formulario B:

LPARAMETERS pcCallThisMethod

IF VARTYPE(pcCallThisMethod)="C"
EVAL("THISFORM." + pcCallThisMethod + "()")
RETURN .F. && Esto evita que el formulario se muestre
ENDIF

*-- Aqui iria el resto de tu codigo Init


Entonces, para ejecutar el metodo MiMetodo en el formulario B, harias
algo asi:

DO FORM formaB WITH "MiMetodo"


Saludos

Victor Espina

Miguel Canchas

unread,
Aug 18, 2010, 12:17:07 PM8/18/10
to publice...@googlegroups.com
Lo que puedes hacer es llamar al form A de manera invisible y ejecutar lo
que necesites de ello.

MK

----- Original Message -----
From: "Julio Rossi" <jro...@sys-ilt.com.ar>
To: <publice...@googlegroups.com>
Sent: Tuesday, August 17, 2010 9:36 AM
Subject: Re: [vfp] Re: Ejecutar un metodo de un formulario desde otro
formulario

Walter R. Ojeda Valiente

unread,
Aug 19, 2010, 2:32:32 AM8/19/10
to publice...@googlegroups.com
Claro, así lo hacía yo, pero el método de Hugo C. me parece mejor.

Saludos.

Walter.




> From: mcan...@tracusape.com
> To: publice...@googlegroups.com
> Subject: Re: [vfp] Re: Ejecutar un metodo de un formulario desde otro formulario
> Date: Wed, 18 Aug 2010 11:17:07 -0500
>
> Lo que puedes hacer es llamar al form A de manera invisible y ejecutar lo
> que necesites de ello.
>
> MK
>
> ----- Original Message -----
> From: "Julio Rossi" <jro...@sys-ilt.com.ar>
> To: <publice...@googlegroups.com>
> Sent: Tuesday, August 17, 2010 9:36 AM
> Subject: Re: [vfp] Re: Ejecutar un metodo de un formulario desde otro
> formulario
>
>
> > Gracias Extremo
> >
> > Me estaba pareciendo porque no encontraba forma ni encontré información de
> > lo mismo.
> > Pensé que el formulario podía tratarse como un PRG y llamar a alguno de
> > sus métodos.

Carton Jeston (9.0.0.7423)

unread,
Aug 23, 2016, 3:22:50 PM8/23/16
to Comunidad de Visual Foxpro en Español, wr...@hotmail.com


Mas arriba la version de Hugo permite llamar un formulario A a un subformulario B de modo oculto.

Hay otro caso a la inversa, imagina que tienes un formulario A, abres un subformulario B visible y necesitas ejecutar un metodo del formulario A desde el actual B.

1. Al formulario A le cambio el nombre por MIFORM

2. Pongo esto en el init del Formulario A

PUBLIC MIFORM AS FORM
MIFORM=THISFORM

3. Desde el B solo tengo que ejecutar una linea...

MIFORM.elmetodoquesea

Y ya esta...

Se me daba el caso que desde un menu ejecutaba el formulario A:  DO A NAME MIFORM
y funciona pero si durante el desarrollo ejecuto A directamente, el objeto MIFORM no se encontrara. De este modo funciona mas sencillo ya que siempre funciona.

P.D. El tema es viejo pero interesante y he preferido completarlo con esta informacion.

Carlos Miguel FARIAS

unread,
Aug 23, 2016, 5:15:13 PM8/23/16
to Grupo Fox
Que funcione no quiere decir que sea una solución apropiada.
a) estas creando una variable pública que puede ser "pisada" en cualquier parte con otra asignación a otro form o a lo que sea.
b) que un formulario tenga que ejecutar un método de otro form, crea una dependencia cruzada muy grande (si el Miform apuntado por la pública se cierra, el llamarlo desde la pública funciona?).
c) Evidentemente hay un problema de diseño o refactoreo apresurado
No me parece apropiado "propagar" malas prácticas de programación.
P.E. proponer soluciones con APPEND BLANK y luego REPLACE, cuando se puede solucionar con un INSERT SQL (cuya lógica funciona en nativas y en SGBD externos).
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe

Antonio Meza

unread,
Aug 23, 2016, 5:43:41 PM8/23/16
to Comunidad de Visual Foxpro en Español
Lo mas correcto seria crear un procedimiento o función en un prg que luego puedas llamar desde cualquier formulario,

saldos
Antonio Meza

Carton Jeston (9.0.0.7423)

unread,
Aug 23, 2016, 6:10:35 PM8/23/16
to Comunidad de Visual Foxpro en Español
Yo he hablado de una posibilidad, no de que sea la solucion optima ni la aconsejada (que tambien han indicado mas arriba), simplemente indico como se puede hacer.

a) Cierto, deberian abolir las variables publicas o aprender a nombrarlas para que no se de el caso :D

b) Funciona bien para algunas cosas, por ejemplo necesito refrescar el formulario anterior desde el subformulario para que se actualice algun dato como la suma total del documento. En mi caso  la definicion publica esta en el formulario  y este no puede ser cerrado sin salirte antes del subformulario, con lo nunca ocurrira. Primero se entra en A, luego en B, sales de B y sales de A. Pero si es cierto, que es una cosa que no se debe abusar ni usar como metodo de programacion sustitutivo.

c) Esta claro que la solucion pasa por mejorar el diseño, evitando tener codigo en formularios, etc. y tampoco concibo que tenga que ejecutar codigo de aqui y de alla cuando se puede separar perfectamente. Hay casos puntuales que puedes salir del paso, hacerlo funcionar pero ponerle la chincheta para revisar. ¿Lo apropiado es hacerlo en el momento? Si, pero si necesitas algo que funcione y el tiempo se acaba, te puede hacer la papeleta. Porque para hacerlo bien con prisas, eso ya te digo que no funciona :D

Y no te preocupes si "propago" malas practicas de la programacion, que tenemos al bueno de Fernando Bozzo para contrarestar mi malefica infuencia... Y lo digo de verdad, que por aqui uno casi me puso de anticristo :D

Y para acabar de arreglarlo, en alguna aplicacion antigua con dbf y monopuesto, aun uso append blank+replace junto con insert-sql, sobre todo el primero cuando hay muchos replace con codicionantes.

Bueno, para quitar hierro al asunto (que feo quedo lo de propagar), tambien hay que reciclarse cada uno como programador pero hay que tener en cuenta que quizas tengas aplicaciones hechas hace 20 años que uno la hizo conforme iba aprendiendo y a veces tienes que recurrir a trucos sucios. Yo he aplicado en algunos casos mejoras con buenas practicas pero en otros me sale mas rentable rediseñar toda la aplicacion, tardo un poco mas pero a la larga ahorro mucho tiempo en mantenimiento. Lo malo es que hasta ese momento, puede que necesites hacer funcionar lo que tienes hasta que puedas sacar tiempo para completar la nueva aplicacion que pueden ser varios meses o años.

Y te doy toda la razon, lo apropiado es siempre hacer bien las cosas desde el principio e intentar no ir por el camino mas facil, porque este ultimo conforme engorda la aplicacion se vuelve mas cuesta arriba ;-)

Carton Jeston (9.0.0.7423)

unread,
Aug 23, 2016, 6:23:43 PM8/23/16
to Comunidad de Visual Foxpro en Español

O tener bien definidas las tres capas. :D

Vale para lo que vale, no creo que sea apropiado poner una rutina de validar fecha en el formulario A y llamarlo desde el B, eso se mete en un prg o te montas una clase para ese objeto. Con fox tienes muchas opciones.

En mi caso puedo ejecutar desde el subformulario B el refresh de un texto del formulario principal A, que estan configurados como modal pero se ven ambos. Puedo cambiar el valor del campo si es una variable pero no refrescarla... igual podria meterle un timer en A que refresque cada cierto tiempo (horrible), hacer formset (no me gustan nada) y seguramente habra un metodo mejor que desconozco aun mas facil.

Lo cierto, es que en mi aplicacion solo lo he usado en un caso concreto, desde luego no se trata de adoptarlo como metodologia de programacion.

Por cierto,  ¿cuantos foxy's llevas ya? ¿Para cuando un FoxyReport? :-D

Antonio Meza

unread,
Aug 23, 2016, 6:37:07 PM8/23/16
to Comunidad de Visual Foxpro en Español
Ya esta se llama FoxyPreviewer  jajajaja pero no es mio jajaja

Tenia rato que no se te leía por aquí y como vas con Chin Chon Chen respecto VFP de 64bit?

saludos

Fidel Charny

unread,
Aug 23, 2016, 6:50:00 PM8/23/16
to Comunidad de Visual Foxpro en Español
No sé si entendí este meollo, pero si el tema es:
tengo un formulario A con un método que llamo _metodo.
Desde el Form. A llamo al form B, donde necesito que se ejecute el método _metodo del form A.

* llamada del form A
Do form B with thisform, "_metodo"

* Init del form B
LPARAMETERS toForm, tcRaiseMethod
ADDPROPERTY(thisform,"oform",toForm)
ADDPROPERTY(thisform,"cRaiseMethod", tcRaiseMethod)

* Donde deba ejecutarse el metodo
IF VARTYPE(thisform.oform)="O" AND PEMSTATUS(thisform.oform, thisform.cRaiseMethod,5)
              RaiseEvent(thisform.oform , thisform.cRaiseMethod , param1, param2, etc)
ENDIF

Luiz Alexandre Ruiz

unread,
Aug 23, 2016, 6:52:00 PM8/23/16
to Comunidad de Visual Foxpro en Español
DO FORM Cliente NAME frmCliente

No Click do botão de outro form qualquer
frmCliente.txtChave.Value = 10
ou
frmCliente.AtualizaCliente()

Não é preciso criar uma variável pública, porque o objeto "frmCliente" já é uma "variável" publica.

Lembre-se todo "form" é uma classe, e para tanto é preciso estar instanciado.

O "DO FORM" "encapsula" o CREATEOBJECT.

Carton Jeston (9.0.0.7423)

unread,
Aug 23, 2016, 8:05:37 PM8/23/16
to Comunidad de Visual Foxpro en Español

Si, esa es la forma habitual pero te voy a poner un caso concreto con formularios.

MAIN -> do form Cliente name frmCliente -> CLIENTE (frmCliente) -> do form Ventas ->VENTAS

Desde Ventas   frmCliente.Refresh

Esto funciona bien desde ejecucion, si compilo toda la aplicacion fluye adecuadamente.

Pero cuando estoy en entorno de desarrollo, estoy trabajando directamente sobre el formulario CLIENTE, lo ejecuto sin compilar toda la aplicacion y funciona correctamente siempre.

El primer caso en una version final es lo apropiado, durante el desarrollo la segunda (y si vas con cuidado y no abusas sirve para todo).

Si estas haciendo algo nuevo, lo mejor es hacerlo bien desde el principio, trabajando con clases o un framework, cuesta un poco mas al principio pero los beneficios son para siempre. Pero no siempre el escenario que te encuentras es tan ideal ;-)

Luiz Alexandre Ruiz

unread,
Aug 23, 2016, 10:23:37 PM8/23/16
to Comunidad de Visual Foxpro en Español
- Nos dois casos o form continua sendo um objeto.

- Todos os componentes visuais que você trabalha no VFP são classes, então ao criar um formulário ou até mesmo o relatório você já está trabalhando com classe.

Para o segundo caso utilize Cliente.Refresh.

Você pode colocar o seguinte código no botão do form Vendas.

Botão
Click
LOCAL loForm as Form
loForm = IIF(VARTYPE(frmCliente)=="O", frmCliente, IIF(VARTYPE(Cliente)=="O", Cliente, .F.)
IF VARTYPE(loForm) == "O" THEN
loForm.Refresh()
ENDIF

Neste código ele evita de dar erro caso o form não exista.

Darkshadow Fernández

unread,
Mar 24, 2017, 11:44:51 AM3/24/17
to Comunidad de Visual Foxpro en Español, jro...@sys-ilt.com.ar
yo tengo una pregunta!!

estoy en un proyecto de un reproductor multimedia que debe tener una lista de reproducción y un ecualizador la lista está hecha, pero el ecualizador al  llamarlo (también esta hecho con los parámetros) no lo logro hacer funcionar en el objeto WindowsMediaPlayer del otro formulario para que ecualice. habrá alguien que me pueda ayudar?
destaco que los parametros y formula estan en una libreria.
Reply all
Reply to author
Forward
0 new messages