Possible, to replace a BMP in BTNBMP at Runtime ?

Post Reply
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Possible, to replace a BMP in BTNBMP at Runtime ?

Post by ukoenig »

Hello,

Is it possible to replace / change a Bitmap for a Button ( BTNBMP ) at runtime ?
Inside my Setup-section, I want to display a new selected Bitmap for a defined Button.
It works with REDEFINE BITMAP but using BTNBMP, the Button is not repainted.

Code: Select all | Expand


// 1. Button
// --------------
REDEFINE BTNBMP oBtn81 ID 901 OF oDlg10 2007 ;
FILENAME c_path + "\system\Button.bmp" ;
PROMPT "Button 1" ;
FONT oFont1 ;
LEFT ;
ACTION ( cFilter := "BMP (*.bmp)|*.bmp|", ;
   cNewBITM := cGetFile32( cFilter,"Select a Picture" ,,  "\" + CurDir()+ "\project" ), ;
   IIF( empty( cNewBITM ), MsgAlert( "
No file selected !","ATTENTION" ), NIL ), ;
        D_BUTTON1 := cFileNoPath( cNewBITM ), oButton1:Refresh(), ;
        oBMP15:Refresh() )
oBtn81:cTooltip := "
1. Button"

// That works, but it is not transparent.
// --------------------------------------------
REDEFINE BITMAP oBMP15  ID 411  ADJUST  RESOURCE "
Blanc"  OF oDlg10 TRANSPARENT
oBMP15:bPainted := {|hDC| DRAW_IMG( oBMP15, D_BUTTON1) }

// With BTNBMP it doesn' work
// ---------------------------------
// REDEFINE BTNBMP oBMP15 ID 411 OF oDlg10 Adjust ;
// FILENAME c_path + "
\project\" + D_BUTTON1
// oBMP15:lTransparent = .t.


Image

Is there any solution for it ?

Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
Enrico Maria Giordano
Posts: 8753
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Re: Possible, to replace a BMP in BTNBMP at Runtime ?

Post by Enrico Maria Giordano »

You may try to put both and alternatively show one and hide the other. I don't think you can change the class of an object on the fly.

EMG
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: Possible, to replace a BMP in BTNBMP at Runtime ?

Post by ukoenig »

Enrico, thank You very much for the reply.

I finished the Setup-part for the Buttontools and the user can select any Button-BMP's
to display them in the 4 different Dialogs in the Main-Window with defined Backgrounds.
The Bitmap-selection works perfect, the only thing that doesn't look nice, is the black
( Alpha-Blended ) Background of the 3 Control-Button-BMP's ( Preview ).
I think the < REDEFINE BITMAP > doesn't support Alpha-Blends.

Image

Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Possible, to replace a BMP in BTNBMP at Runtime ?

Post by nageswaragunupudi »

>
I want to display a new selected Bitmap for a defined Button.
>

oBtn:SetFile( nil, nil, <cNewBmpFileName> )
Regards

G. N. Rao.
Hyderabad, India
User avatar
ukoenig
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany
Contact:

Re: Possible, to replace a BMP in BTNBMP at Runtime ?

Post by ukoenig »

Thank You very much for the information.

It works perfect now.
Only the information of a new file was needed.
oBMP1:SetFile( c_path + "\project\" + D_BUTTON1 ) )

Image

Code: Select all | Expand


// 1. Button
// --------------
REDEFINE BTNBMP oBtn1 ID 100 OF oDlg1 2007 ;
FILENAME c_path + "\system\Button.bmp" ;
PROMPT "Btn 1-4" ;
FONT oFont1 ;
LEFT ;
ACTION ( cFilter := "BMP (*.bmp)|*.bmp|", ;
      cNewBITM := cGetFile32( cFilter,"Select a Picture" ,,  "\" + CurDir()+ "\project" ), ;
      IIF( empty( cNewBITM ), MsgAlert( "
No file selected !","ATTENTION" ), NIL ), ;
          D_BUTTON1 := cFileNoPath( cNewBITM ), oButton1:Refresh(), ;
          oBMP1:SetFile( c_path + "
\project\" + D_BUTTON1 ) )
oBtn1:cTooltip := "
Button 1-4"

REDEFINE GET oButton1   VAR D_BUTTON1  ID 110 OF oDlg10 PICTURE "
!!!!!!!!!!!!!!!" UPDATE

// Testbutton 1
// ----------------------
REDEFINE BTNBMP oBMP1 ID 120 OF oDlg1 ;
FILENAME c_path + "
\project\" + D_BUTTON1 ;
LEFT
oBMP1:lTransparent = .t.


Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
Post Reply