FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Evitar parpadeo al abrir varias ventanas child ( how to )
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 03:49 AM

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 ?

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

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

Saludos

:P:wink:

FWH 10.6 + xHarbour + Borland 582
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 06:55 AM

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
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 07:47 PM
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




Y asi es como lo estoy haciendo :


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



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

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




Saludos
FWH 10.6 + xHarbour + Borland 582
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 07:53 PM
Raymundo,

Prueba a añadir este parámetro:

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

Antonio Linares
www.fivetechsoft.com
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 08:03 PM

Gracias por tan pronta respuesta Antonio,

Probado, pero sigue igual.

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 08:16 PM

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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 08:34 PM

bien :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Tue Sep 28, 2010 02:59 PM
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 (fw): Select all Collapse
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
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
Re: Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Wed Sep 29, 2010 01:20 PM

Willi,

Muchas gracias por el tip.

Saludos

FWH 10.6 + xHarbour + Borland 582

Continue the discussion