Sobre Valid en ventanas Padre e Hijas

Sobre Valid en ventanas Padre e Hijas

Postby sjingo » Sat Sep 06, 2008 5:26 pm

Saludos amigos

Tengo un pequeño problema con las ventanas hijas al salir de la aplicación. Sucede que uso una variable static única que contiene el objeto Connection que es la misma durante toda la sesión del programa y es usada en todas las ventanas hijas que se abran. Este objeto se cierra al momento que salgo de la aplicación, es decir en el valid de la ventana principal.

Yo tenía entendido que el valid de la principal se ejecutaría al final luego de cerrar todas las ventanas hijas, pero veo que no es así. Porque al salir de la aplicación lo primero que hace es cerrar el objeto conección y dejando sin la variable que es usada en las hijas que aún no se cierran, dando lugar a error.

Si cierro todas las ventanas hijas y al final cierro la principal, no da ningún error de ausencia de datos.

Entonces cómo hago para que primero se procesen los valids de las ventanas hijas y al final el de la principal. O cómo hago para que en el valid de la principal mande a cerrar todas las ventanas hijas para finalmente eliminar el objeto .

Cualquier sugerencia es bienvenida.

Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Sobre Valid en ventanas Padre e Hijas

Postby FranciscoA » Sat Sep 06, 2008 8:14 pm

Prueba esto, a ver si te funciona.

Function CerrarVent()
local n:=0

if Len( oWnd:oWndClient:aWnd ) > 0
For n := 1 to Len( oWnd:oWndClient:aWnd )
oWnd:oWndClient:aWnd[n]:Close
Next
endif

Return nil

Saludos.
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Postby sjingo » Sat Sep 06, 2008 9:29 pm

Gracias Francisco

Lo probé pero sigue igual.

He visto que realmente si se cierran primero las ventanas hijas con sus valid y al final la ventana padre.

Lo raro es que cuando le mando a cerrar el objeto conexion en el valid de la ventana padre, es como si primero se ejecutara este valid cerrando la conexión dejando sin datos a los browses hijos apareciendo los consiguientes errores.

He decidido no cerrar el objeto conexion en el valid, porque al fin y al cabo estoy saliendo ya de la aplicación. Ahí ya no sale el error y se ejecutan normalmente los valids de los hijos.

Pero aún me queda la duda. Esto me pasó al querer usar una sola variable static para la conexión de todas las ventanas. Antes creaba por cada ventana hija una variable local de conexión y no tenía ningun problema.

Realmente se ganará algo creando una sola variable o lo dejo como estaba, qué opinan.

Un saludo

Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Postby Antonio Linares » Sat Sep 06, 2008 9:44 pm

Marcelo,

Yo optaría por usar una sola variable, para asi tener un código más simple de mantener.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42161
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby sjingo » Sat Sep 06, 2008 11:39 pm

Tu palabra es la Ley :D

De momento está solucionado este tema. Si tengo más problemas ya me tendrán pidiendo su ayuda

Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 21 guests