reinaldocrespo wrote:Hi,
Ok, how about changing the bitmap on a TbnBmp object at runtime?
Here is my code, but it isn't changing the bitmap.
...
聽 聽REDEFINE BUTTONBMP ::oBalance BITMAP "dotGreen" ID 501 OF ::oDlg TEXTRIGHT ;
聽 聽 聽 聽 聽 聽 聽 聽PROMPT oSelf:cDebt UPDATE
...
聽 聽 聽 ::oBalance:SetText( ::cDebt )
聽 聽 聽 ::oBalance:LoadBitMaps( IIF( nDebt > 0, "DotRed", "DotGray" ) )
聽 聽 聽 ::oBalance:Refresh()
Ideas?
Thank you,
Reinaldo.
This is TButtonBmp object and not TBtnBmp (FWH own class) object.
Should be :LoadBitmap(...) not :LoadBitmaps(...)
Method LoadBitmap() releases previous bitmap handle.
LoadBitmap accepts single parameter.
Here is a working sample to showing switching bitmap, text and alignment
function ButtnBmpChange()
聽 聽local oDlg, oFont, oBtn
聽 聽USE CUSTOMER NEW ALIAS CUST
聽 聽DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
聽 聽DEFINE DIALOG oDlg SIZE 200,140 PIXEL FONT oFont
聽 聽@ 10,10 BUTTONBMP oBtn PROMPT "Go Right" BITMAP "c:\fwh\bitmaps\right1.bmp" ;
聽 聽 聽 TEXTLEFT SIZE 80,20 PIXEL OF oDlg
聽 聽@ 40,10 BUTTONBMP PROMPT "Change" SIZE 80,20 PIXEL OF oDlg ;
聽 聽 聽 ACTION If( "left" $ oBtn:cBitmap, ;
聽 聽 聽 聽 聽( oBtn:LoadBitmap( "c:\fwh\bitmaps\right1.bmp" ), ;
聽 聽 聽 聽 聽 聽oBtn:SetText( "Go Right" ), ;
聽 聽 聽 聽 聽 聽oBtn:cPosText := "TEXTLEFT", oBtn:Refresh() ), ;
聽 聽 聽 聽 聽( oBtn:LoadBitmap( "c:\fwh\bitmaps\left1.bmp" ), ;
聽 聽 聽 聽 聽 聽oBtn:SetText( "Go Left" ), ;
聽 聽 聽 聽 聽 聽oBtn:cPosText := "TEXTRIGHT", oBtn:Refresh() ) ;
聽 聽 聽 聽 聽)
聽 聽ACTIVATE DIALOG oDlg CENTERED
聽 聽RELEASE FONT oFont
return nil
//----------------------------------------------------------------------------//