Evitar parpadeo al abrir varias ventanas child ( how to )

Post Reply
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Evitar parpadeo al abrir varias ventanas child ( how to )

Post by Raymundo Islas M. »

Hola a todos

Tengo una ventana padre, y al momento de ejecutar la app debo abrir varias hijas al inicio, todo bien excepto que se produce un parpadepo segun se estan abriendo las demas ventanas, hay algo que se pueda hacer ?


:P
Esto me recuerda a aquellos dias de clipper cuando se usaba :

DispBegin(), DispEnd(), SaveScreen(), RestScreen()

:wink:


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Raymundo,

Puedes probar a ocultarlas todas con oMdiChild:Hide() y no mostrarlas hasta que no esten todas creadas.

Otra solución es crearlas en coordenadas fuera de la zona visible y luego cambiarlas de posición cuando ya estan todas credas.

Tambien comentarte que FiveWin implementa el equivalente a los legendarios DispBegin() y DispEnd() :-) pero no se si en este caso te serían de ayuda. Prúebalo :-)

Antes de empezar a crear las ventanas hijas llama a local aInfo := oMdiFrame:DispBegin() y despues de crear todas las ventanas hijas, llama a oMdiFrame:DispEnd( aInfo ) :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Hola Antonio,

Eso de generar la ventana en coordenadas negativas funciona muy bien, el detalle cuando quiere restaurarlas en la pocision correcta, me pinta solo la mitad de la misma.

checa la imagen

Image


Y asi es como lo estoy haciendo :

Code: Select all

DEFINE WINDOW oEmpWndPOS MDICHILD ;
	OF oMainRSWnd ;
	FROM -10,-10 TO -5,-5 PIXEL ;		//FROM 0,0 TO 680,1020 PIXEL ;
	TITLE "Modulo POS"  ;
	NOCAPTION BORDER NONE ;	
	BRUSH oDlgsBrsh ;
	MENUINFO 4

Code: Select all

ACTIVATE WINDOW oEmpWndPOS ;
	VALID ( oEmpWndPOS := NIL, .T. )

oEmpWndPOS:Move( 0,0,680,1020 )


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Raymundo,

Prueba a añadir este parámetro:

oEmpWndPOS:Move( 0, 0, 680, 1020, .T. )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Gracias por tan pronta respuesta Antonio,

Probado, pero sigue igual.


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Post by Raymundo Islas M. »

Antonio,

He aumentado el parametro :

oEmpWndPOS:Move( 0,0,680,1020,.T.)

a:

oEmpWndPOS:Move( 0,0,1100,1020,.T.)

Y ya me muestra la pantalla completa

No se la razon, pero al menos ya quedo !!!



Gracias


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Evitar parpadeo al abrir varias ventanas child ( how to )

Post by Willi Quintana »

Holas...
Siempre he creado las MDI de esta manera:
se crea un ventana "pequeña", en el extremo superior de la pantalla, luego al tomar el tamaño del dialogo, no hay parpadeo,,, o al menos no se nota...

Code: Select all

DEFINE WINDOW oWndK MDICHILD FROM 0,0 to 2,2 OF oWnd ............
  DEFINE DIALOG oDlg,,,,,,,




ACTIVATE DIALOG oDlg CENTER NOWAIT ;
                ON INIT ( oDlg:Move( 0, 0 ) ;
               VALID  (oWndK:End(), lSalir )
                oWndK:bGotFocus  = { || oDlg:SetFocus() }
ACTIVATE WINDOW oWndK ;
               ON INIT (oWndK:Move(0,0), oWndK:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;   
               ON RESIZE (oWndK:SetSize( oDlg:nWidth, oDlg:nHeight ) ) ;
               VALID ( lSalir)
 
Seria de que prueben....

Salu2
User avatar
Raymundo Islas M.
Posts: 590
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Re: Evitar parpadeo al abrir varias ventanas child ( how to )

Post by Raymundo Islas M. »

Willi,

Muchas gracias por el tip.


Saludos
FWH 10.6 + xHarbour + Borland 582
Post Reply