FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour clear tImage
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
clear tImage
Posted: Tue Jul 22, 2008 09:36 PM

Hi all !
I created image

oIm:=tImage():New()
oIm:LoadBmp(cFile)

I want delete BMP from oIm. How do it ?

Posts: 824
Joined: Thu Oct 13, 2005 07:39 AM
clear tImage
Posted: Tue Jul 22, 2008 09:53 PM

Natter,

if you want to change the image just load load a new one
oIM:SetBmp(cResName) or oIM:ReLoad( cResName, cBmpFile )

if you want to delete the bmp you can destroy the object, just write oIM := nil or you try to load an unexisting image (not tested)

kind regards

Stefan
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
clear tImage
Posted: Tue Jul 22, 2008 10:09 PM

... delete the bmp you can destroy the object, just write oIM := nil or you try to load an unexisting image (not tested)"

I do it. It's not work

Posts: 92
Joined: Fri Nov 18, 2005 11:15 PM
clear tImage
Posted: Wed Jul 23, 2008 03:59 AM

try this:

oIm:hbitmap := 0
oIm:Refresh()

Ralph

Ralph del Castillo

Lima PERU

Fwh 24.07, xHb123_10193, MySQL 8.x, BCC 7.3
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
clear tImage
Posted: Wed Jul 23, 2008 06:19 AM

It's not work

Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
clear tImage
Posted: Wed Jul 23, 2008 07:19 AM
Natter wrote:It's not work
May be:
PalBmpFree( oIm:hBitMap, oIm:hPalette )
Regards.

Manuel Mercado.
manuelmercado at prodigy dot net dot mx
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
clear tImage
Posted: Wed Jul 23, 2008 09:45 AM
This is a sample:

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg, oImg

    DEFINE DIALOG oDlg;
           SIZE 700, 500

    @ 1, 1 IMAGE oImg;
           FILE "SFONDO.JPG";
           SIZE 200, 200;
           ADJUST

    @ 0,  1 BUTTON "Save";
            ACTION MSGINFO( oImg:SaveImage( "SAVED.JPG", 2 ) )

    @ 0,  7 BUTTON "Print";
            ACTION PRINT( oImg )

    @ 0, 13 BUTTON "Paste";
            ACTION ( oImg:LoadFromClipboard(),;
                     oImg:Refresh() )

    @ 0, 19 BUTTON "Load";
            ACTION ( oImg:LoadImage( , "GRIGIO.JPG" ),;
                     oImg:Refresh() )

    @ 0, 25 BUTTON "Clear";
            ACTION ( PalBmpFree( oImg:hBitMap, oImg:hPalette ),;
                     oImg:hBitmap := 0,;
                     oImg:hPalette := 0,;
                     oImg:cResName := NIL,;
                     oImg:cBmpFile := NIL,;
                     oImg:Refresh() )

    ACTIVATE DIALOG oDlg;
             CENTER

    RETURN NIL


STATIC FUNCTION PRINT( oImg )

    LOCAL oPrn

    PRINT oPrn PREVIEW MODAL
        PAGE
            oPrn:SayImage( 0, 0, oImg, oPrn:nHorzRes(), oPrn:nVertRes() )
        ENDPAGE
    ENDPRINT

    RETURN NIL


EMG
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
clear tImage
Posted: Wed Jul 23, 2008 12:58 PM

It looks like the TImage class needs an End() method.

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
clear tImage
Posted: Wed Jul 23, 2008 03:29 PM
James Bott wrote:It looks like the TImage class needs an End() method.
Hi James:

It has. TImage is a TBitmap subclass, then inherits Destroy Method.

Best regards.

Manuel Mercado
manuelmercado at prodigy dot net dot mx
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
clear tImage
Posted: Wed Jul 23, 2008 04:56 PM

Thank everybody !

@ 0, 25 BUTTON "Clear";
ACTION oImg:hBitmap := 0, ;
oImg:cBmpFile := NIL,;
oImg:Refresh() )

It work right !

Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
clear tImage
Posted: Wed Jul 23, 2008 04:59 PM
It has. TImage is a TBitmap subclass, then inherits Destroy Method.


It is not clear if we should call the Destroy() method or the End() method. I see that TBitmap inherits from TControl which inherits from TWindow, yet I do not see the Destroy() method being called by any of those classes' End() method.

To be consistant with all the other classes, the End() method should be the one that ends the object.

James
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
clear tImage
Posted: Wed Jul 23, 2008 05:01 PM

Natter,

Try calling oImg:End() or oImg:Destroy() to see if one of those also works.

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
clear tImage
Posted: Wed Jul 23, 2008 05:21 PM

1) calling oImg:End() - this method deleted control
2) calling oImg:Destroy() - this method not work right.

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
clear tImage
Posted: Wed Jul 23, 2008 05:36 PM
Natter wrote:Thank everybody !

@ 0, 25 BUTTON "Clear";
ACTION oImg:hBitmap := 0, ;
oImg:cBmpFile := NIL,;
oImg:Refresh() )

It work right !


It's not enough. Please use what I put in my sample if you don't want to have resource leak.

EMG

Continue the discussion