Page 1 of 1
Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Sat Aug 16, 2008 3:49 am
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 ?
Esto me recuerda a aquellos dias de clipper cuando se usaba :
DispBegin(), DispEnd(), SaveScreen(), RestScreen()
Saludos
Posted: Sat Aug 16, 2008 6:55 am
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 )
Posted: Sat Aug 16, 2008 7:47 pm
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
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
Posted: Sat Aug 16, 2008 7:53 pm
by Antonio Linares
Raymundo,
Prueba a añadir este parámetro:
oEmpWndPOS:Move( 0, 0, 680, 1020, .T. )
Posted: Sat Aug 16, 2008 8:03 pm
by Raymundo Islas M.
Gracias por tan pronta respuesta Antonio,
Probado, pero sigue igual.
Saludos
Posted: Sat Aug 16, 2008 8:16 pm
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
Posted: Sat Aug 16, 2008 8:34 pm
by Antonio Linares
bien
Re: Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Tue Sep 28, 2010 2:59 pm
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
Re: Evitar parpadeo al abrir varias ventanas child ( how to )
Posted: Wed Sep 29, 2010 1:20 pm
by Raymundo Islas M.
Willi,
Muchas gracias por el tip.
Saludos