Este browse, que toma los datos de un array, se actualiza en tiempo de ejecución según una serie de condiciones.
Cada vez que se tiene que actulizar el browse llamo a:
oBrw:SetArray( aArr )
He detectado, con checkres(), que no se limpia el brush asignado al browse.
- Code: Select all Expand view RUN
- ...
BRUSH,1594890193,TGHE_XBROWSE:INITIATE(882)->__OBJSENDMSG(0)->HB_EXECFROMARRAY(0)->OSEND(219)->HB_EXECFROMARRAY(0)->ASEND(197)->TDIALOG:INITIATE(638)->TDIALOG:ACTIVATE(298)->TFOLDER:DEFAULT(406)->TFOLDER:INITIATE(341)->__OBJSENDMSG(0)->HB_EXECFROMARRAY(0)->OSEND(219)->HB_EXECFROMARRAY(0)->ASEND(197)->TDIALOG:INITIATE(638)->TDIALOG:ACTIVATE(298)->TGHE_EDITDAT:ONINIT(1695)->(b)TGHE_EDITDAT:ACTIVATE(199)->TWINDOW:ACTIVATE(973)->TMDICHILD:ACTIVATE(248)->TGHE_EDITDAT:ACTIVATE(199)->ARTICULO(77)->PS_ACTION(37)->(b)LARTICULO(22)->TGHE_BUSQ:EJECUTAR(518)->(b)TGHE_BUSQ:BUILDCONTROLS(393)->TBTNBMP:CLICK(465)->TGHE_BUSQ:KEYDOWN(684)->(b)TGHE_BUSQ:ACTIVATE(286)->TGHE_XBROWSE:LDBLCLICK(3560)->TWINDOW:HANDLEEVENT(0)->TCONTROL:HANDLEEVENT(1699)->TGHE_XBROWSE:HANDLEEVENT(11634)->_FWH(3159)->WINRUN(0)->TMDIFRAME:ACTIVATE(980)->MAIN(60)
...
Así que cada vez que llamo a SetArray(), deja el anterior brush sin cerrar.
Revisando el código de la clase xbrowse e visto como solucionarlo
En el método Adjust se crea el nuevo brush pero no se elimina el anterior
- Code: Select all Expand view RUN
- ...
if ::hBrushRecSel<>NIL //fgondi
DeleteObject( ::hBrushRecSel )
endif
::hBrushRecSel := CreateSolidBrush( ::nRecSelColor )
...