FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour tOutLook2003 sobre mdichild
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM

tOutLook2003 sobre mdichild

Posted: Fri Dec 19, 2008 10:46 AM
Tengo una barra OutLook2003 incrustada en una ventana mdichild.

Al cerrar la ventana mdichil y volverla a abrir se me cerraba el programa.

Buscando el problema encontre que se producía en el método paint de la clase tOutLook2003.
Mas concretamente en la línea donde se llama a FillRect

METHOD Paint() CLASS TOutLook2003

   local n, nTop
   local aInfo := ::DispBegin()   

   FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
...


El motivo es que en la segunda vez que se carga la barra OutLook2003 ::oBrush no se ha definido.

Buscando donde se define el brush por defecto en la clase tOutLook2003 encontre que se define en el método Register de la clase tWindow
METHOD Register( nClsStyle )  CLASS TWindow

   local hUser

   DEFAULT ::lRegistered := .f. // XBPP workaround

   if ::lRegistered
      return nil
   endif

   #ifdef __CLIPPER__
      hUser = GetModuleHandle( "user.exe" )
   #else
      hUser = GetInstance()
   #endif

   DEFAULT nClsStyle  := nOR( CS_VREDRAW, CS_HREDRAW ),;
           ::nClrPane := GetSysColor( COLOR_WINDOW ),;
           ::oBrush   := TBrush():New( ,::nClrPane )
...


Pero la segunda vez que se llama a la definición de la barra OutLook2003 la data ::lRegistered tiene valor .T. por lo que abandona método Register antes de llegar a la definición DEFAULT de ::oBrush.

Desconozco si esto tiene que funcionar así y cual debe ser la solución mas correcta.
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM

tOutLook2003 sobre mdichild

Posted: Tue Dec 23, 2008 08:25 AM
Bueno, pues yo lo he solucionado de esta forma

METHOD Paint() CLASS TOutLook2003

   local n, nTop
   local aInfo := ::DispBegin()   

   if ::oBrush<>NIL
     FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush 
   endif
...


No se si será la mas correcta, pero ahora funciona.
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM

Re: tOutLook2003 sobre mdichild

Posted: Fri May 07, 2010 11:24 AM

Sigo usando outlook2003 con este cambio.

Nadie mas tiene este problema?

Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos

Continue the discussion