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
- Code: Select all Expand view
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
- Code: Select all Expand view
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.