Anular parpadeo de oWndChilds

Anular parpadeo de oWndChilds

Postby FranciscoA » Fri Sep 24, 2010 10:31 pm

Cuando se abre una ventana hija (oChild) siempre se produce un parpadeo. ¿Cómo se evita?
Gracias.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Anular parpadeo de oWndChilds

Postby Antonio Linares » Sat Sep 25, 2010 12:23 pm

Francisco,

Ejecuta este ejemplo y selecciona en el menu "childs", "new". Aqui no aparece ningún parpadeo:
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oWnd

   DEFINE WINDOW oWnd MDI

   ACTIVATE WINDOW oWnd

return nil
 
regards, saludos

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

Re: Anular parpadeo de oWndChilds

Postby FranciscoA » Sat Sep 25, 2010 4:09 pm

Antonio, gracias por contestar.
Quizás no empleé el concepto adecuado (parpadeo). Cuando se abre una Child, ésta trae un tamaño pre-definido, ó el tamaño que le asignas al definirla. Cuando se activa, se nota el cambio entre el tamaño original y el deseado (por ejemplo MAXIMIZED), y es aquí donde se visualiza una especie de intermitencia. (talvez en equipos poderosos, no)

Me preguntaba si hay alguna manera de evitar esto, pintando de una sola vez la Child con el tamaño deseado.
Con los diálogs no lo he notado.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Anular parpadeo de oWndChilds

Postby Antonio Linares » Sat Sep 25, 2010 5:42 pm

Francisco,

Prueba este ejemplo:
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oWnd

   DEFINE WINDOW oWnd MDI

   ACTIVATE WINDOW oWnd ;
      ON INIT CreateChild( oWnd )

return nil

function CreateChild( oWnd )

   local oChild

   DEFINE WINDOW oChild OF oWnd MDICHILD
   
   ACTIVATE WINDOW oChild MAXIMIZED
   
return nil  
 

Sigue sin haber parpadeo (Windows 7).
regards, saludos

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

Re: Anular parpadeo de oWndChilds

Postby FranciscoA » Sat Sep 25, 2010 6:51 pm

Gracias Antonio, resuelto.
Al establecer el tamaño en el ON INIT de la propia oChil, mejoró notablemente.

DEFINE WINDOW oChild MDICHILD OF oWnd TITLE cTitu +" "+ cAlias ;
FROM 0, 0 TO oWnd:nHeight-140, oWnd:nWidth-4 PIXEL ;
COLOR nRGB(247, 243, 232), nRGB(228, 213, 184) ;
NOCAPTION BORDER NONE
...
...
ACTIVATE WINDOW oChild;
ON INIT (oChild:nHeight:=oWnd:nHeight-4, oChild:nWidth:=oWnd:nWidth-4 ,; //tam deseado
oFechemis:SetFocus(),;
oBrw:nHeight := oChild:nHeight-163, oBrw:nWidth := oChild:nWidth-8, oBrw:nTop:=130 ) ;
VALID ( oBrw:CancelEdit(), if( PuedeSalir(cAlias),((cAlias)->(dbCloseArea()), Ferase( ".\"+cAlias+".dbf" ), dbSelectArea(cOldSele), .T.),.f.) )

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: JoseAlvarez and 12 guests