FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour XBrowse metodo ChangeBitmap() pierde recursos
Posts: 149
Joined: Mon Oct 10, 2005 09:30 AM
XBrowse metodo ChangeBitmap() pierde recursos
Posted: Thu Jan 29, 2015 12:52 PM

Analizando la perdida de recursos en mi app, chkres me dice q en este método deja bitmaps por liberar.

Si comento el código de llamada a ese método la perdida de recursos desaparece.

Os dejo aki el código del método q menciono, por si alguien puede ver de manera rápida, q es lo q pasa.

//------------------------------------------------------------------------------

METHOD ChangeBitmap( ) CLASS TXBrwColumn // BtnGet

if ::nBtnBmp > 0 .and. len( ::aBitmaps ) >= ::nBtnBmp
::oBtnElip:hBitmap1 := ::aBitMaps[::nBtnBmp, BITMAP_HANDLE ]
::oBtnList:hBitmap1 := ::aBitMaps[::nBtnBmp, BITMAP_HANDLE ]
::oBtnElip:cCaption := ""
else
::oBtnElip:hBitmap1 := 0
::oBtnList:hBitmap1 := 0
::oBtnElip:cCaption := "..."
endif

::oBrw:refresh()

return nil

//----------------------------------------------------------------------------//

Saludos.

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: XBrowse metodo ChangeBitmap() pierde recursos
Posted: Fri Jan 30, 2015 09:33 AM
Thanks for pointing out the problem.

Please modify the function like this:
Code (fw): Select all Collapse
 METHOD ChangeBitmap( ) CLASS TXBrwColumn // BtnGet

  if ::nBtnBmp > 0 .and. len( ::aBitmaps ) >= ::nBtnBmp
      DeleteObject( ::oBtnList:hBitmap1 )   // ---------------------------- NEW
      ::oBtnElip:hBitmap1 := ::aBitMaps[::nBtnBmp, BITMAP_HANDLE ]
Regards



G. N. Rao.

Hyderabad, India
Posts: 149
Joined: Mon Oct 10, 2005 09:30 AM
Re: XBrowse metodo ChangeBitmap() pierde recursos
Posted: Thu Feb 05, 2015 09:31 AM

Creo q deberia de quedar asi no?

METHOD ChangeBitmap( ) CLASS TXBrwColumn // BtnGet

if ::nBtnBmp > 0 .and. len( ::aBitmaps ) >= ::nBtnBmp
DeleteObject( ::oBtnElip:hBitmap1 )
::oBtnElip:hBitmap1 := ::aBitMaps[::nBtnBmp, BITMAP_HANDLE ]
DeleteObject( ::oBtnList:hBitmap1 )
::oBtnList:hBitmap1 := ::aBitMaps[::nBtnBmp, BITMAP_HANDLE ]
::oBtnElip:cCaption := ""
else
::oBtnElip:hBitmap1 := 0
::oBtnList:hBitmap1 := 0
::oBtnElip:cCaption := "..."
endif

::oBrw:refresh()

return nil

Continue the discussion