FoxPro/Visual FoxPro - formularios secundarios

   
Vista:

formularios secundarios

Publicado por Guillermo (20 intervenciones) el 25/04/2013 15:43:51
saludos compañeros

como hago para q cuando llame un formulario desde otro formulario, no continue las siguientes instrucciones hasta que el usuario cierra el secundario, es decir:

DO FORM secundario
MESSAGEBOX("regresó")


con este codigo me sale el mensaje "regresó" antes de haber cerrado el formulario secundario

agradezco altamente su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

formularios secundarios

Publicado por Fidel (558 intervenciones) el 25/04/2013 17:01:28
Si al llamar al formulario secundario necesitas detener el proceso, el secundario tendrá que ser WindowType=1 (modal). Generalmente utilizarás eso cuando esperas una respuesta del formulario secundario:
do form ..\\forms\secundun with 1 to lcValor
* Acá analizas el valor de LcValor que es la respuesta de Secundun.

En el init del form Secundun
LPARAMETERS xnWinType
if vartype(xnWintype)#"N"
xnWinType=0
endif
with thisform
.Windowtype=xnWinType
.Minbutton=iif(xnWintype=1,.F.,.T.)
ENDWITH
Addproperty(Thisform,"RETORNAR", "")

En Unload del Form Secundun
RETURN THISFORM.RETORNAR

Alternativamente, cuando no necesites detener el proceso, puedes dejar el formulario secundario como Modeless (Windowtype=0) y pasarle como parámetro la referencia al objeto Form del primario
Do form ..\forms\secundun with THISFORM
En este caso, en el INIT del form. secundun va:
PARAMETERS xoForm
Addproperty(thisform,"FormCall",xoForm)

Luego puedes asignar a cualquier objeto o propiedad del primario
Por ejemplo si en el form primario tienes un textbox que se llama "text1"
desde el secundun:
Thisform.FormCall.Text1.Value=nValorAsignado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

formularios secundarios

Publicado por Many (332 intervenciones) el 04/05/2013 03:14:55
Saludo Fidel y todos

Fidel, esto quiere decir que si en en form1 tengo un text box llamado total, en el form2 puedo referirme directamente a este diciendo por ejemplo:

thisform.total.value = 500

Gracias nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar