- Code: Select all Expand view
#include "FiveWin.ch"
#include "Tsbutton.ch"
#define OMBRELLONE_PRENOTATO "AZZURRO.BMP"
#define OMBRELLONE_OCCUPATO "ROSSO.BMP"
#define OMBRELLONE_LIBERO "VERDE.BMP"
#define BMP_H 15
#define BMP_V 15
static oDlg
Function Main()
Local oDlg,oBtnCat
Local abtn[3]
local col:=10
DEFINE DIALOG oDlg SIZE 600,280 TITLE "test button"
For n=1 to 3
nstato:=n
iF nSTATO=1
@ n, col SBUTTON aBtn[n];
FILE OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO PIXEL ;
OF oDlg BITMAP SIZE BMP_H,BMP_V UPDATE
elseif nstato =2
@ n, col SBUTTON aBtn[n];
FILE OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO PIXEL ;
OF oDlg BITMAP SIZE BMP_H,BMP_V UPDATE
elseif nstato =3
@ n, col SBUTTON aBtn[n];
FILE OMBRELLONE_LIBERO,;
OMBRELLONE_LIBERO,;
OMBRELLONE_LIBERO,;
OMBRELLONE_LIBERO PIXEL ;
OF oDlg BITMAP SIZE BMP_H,BMP_V UPDATE
endif
col:=col+30
aBtn[n]:bAction:={ |oBtn|menupopup( oBtn) }
If nstato =1
aBtn[n]:cargo:= { 'BOOKING', n }
elseif nstato =2
aBtn[n]:cargo:= { 'OCCUPATED', n }
elseif nstato =3
aBtn[n]:cargo:= { 'FREE', n }
endif
next
ACTIVATE DIALOG oDlg CENTER
return nil
STATIC FUNCTION MENUPOPUP( oBtn)
Local oMenu, nRow,nCol
Local aRect := GetClientRect( oBtn:hWnd )
MENU oMenu POPUP 2007
MENUITEM "&Arrivo cliente" WHEN oBtn:Cargo[1] = "BOOKING" ACTION CHANGE(oBtn,oDlg)
MENUITEM "&EXTRA BAR" WHEN oBtn:Cargo[1] = "OCCUPATED" ACTION MSGINFO("DRINK A BEER" )
MENUITEM "&BOOKING" WHEN oBtn:Cargo[1] = "FREE" ACTION BOOKING(oBTN)
ENDMENU
ACTIVATE POPUP oMenu AT aRect[ 3 ] + 1, aRect[ 2 ] OF oBtn
return nil
FUNCTION CHANGE(oBtn)
oBtn:ChangeBitmap( {1,2,3,4}, { OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO,;
OMBRELLONE_OCCUPATO }, .t. )
oBtn:refresh()
*oDlg:update()
return nil
FUNCTION BOOKING(oBtn)
oBtn:ChangeBitmap( {1,2,3,4}, { OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO,;
OMBRELLONE_PRENOTATO }, .t. )
oBtn:refresh()
*oDlg:update()
return nil
the button not change the bitmap
the dialog not refresh
I use sbutton 6