FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Anular parpadeo de oWndChilds
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Anular parpadeo de oWndChilds
Posted: 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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Anular parpadeo de oWndChilds
Posted: 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 (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

   local oWnd

   DEFINE WINDOW oWnd MDI

   ACTIVATE WINDOW oWnd

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Anular parpadeo de oWndChilds
Posted: Sat Sep 25, 2010 04: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Anular parpadeo de oWndChilds
Posted: Sat Sep 25, 2010 05:42 PM
Francisco,

Prueba este ejemplo:
Code (fw): Select all Collapse
#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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Anular parpadeo de oWndChilds
Posted: Sat Sep 25, 2010 06: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

Continue the discussion