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
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
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.
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
Fernando González Diez
ALSIS Sistemas Informáticos