Cambio de imagen a 1 boton
-
- Posts: 212
- Joined: Wed Apr 07, 2021 3:56 pm
Cambio de imagen a 1 boton
Buenas noches.
necesito que al oprimir un boton de una ButtonBar este cambie su archivo bmp.
esta declarado asi:
DEFINE BUTTON oBoton1 OF oBar FILE "Efectivo.bmp" ;
ACTION Cobros() ;
MESSAGE "Mantenimiento de Cobros";
PROMPT "Cobros"
oBoton1:lTransparent = .t.
necesito que al oprimirlo muestre la imagen "cheque.bmp"
Gracias
necesito que al oprimir un boton de una ButtonBar este cambie su archivo bmp.
esta declarado asi:
DEFINE BUTTON oBoton1 OF oBar FILE "Efectivo.bmp" ;
ACTION Cobros() ;
MESSAGE "Mantenimiento de Cobros";
PROMPT "Cobros"
oBoton1:lTransparent = .t.
necesito que al oprimirlo muestre la imagen "cheque.bmp"
Gracias
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Cambio de imagen a 1 boton
Try
Then see how the 4 bmp files are used when clicking, hovering, disabled, etc
Code: Select all | Expand
DEFINE BUTTON oBoton1 OF oBar FILE cBmp1, cBmp2, cBmp3, cBmp4 ;
ACTION ...
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
-
- Posts: 212
- Joined: Wed Apr 07, 2021 3:56 pm
Re: Cambio de imagen a 1 boton
Gracias por su tiempo Mr. Rao.
Lo que busco es que cambie la imagen y quede fija la nueva imagen hasta volverlo a oprimir y alli retome la primera imagen del boton.
Como Ud. me lo indico solo lo cambia al oprimir pero no queda fija la nueva imagen.
me explico? solo quiero que el boton inicie con una imagen "efectivo.BMP" y al oprimirlo cambie a la imagen "cheque4.bmp" hasta que lo oprima nuevamente y regrese a la imagen de "efectivo.bmp".
he intentado de esta forma pero solo me cambia el CAPTION
DEFINE BUTTON oBoton1 OF oBar FILE "Efectivo.bmp" ;
ACTION (oBoton1:cCaption:='Cheque',oBoton1:FreeBitmaps(),oBoton1:LoadBitMaps("Cheque4.Bmp"),oBoton1:Paint(),oBoton1:refresh(),Cobros()) ;
MESSAGE "Mantenimiento de Cobros";
PROMPT "Cobros"
oBoton1:lTransparent = .t.
y se que solo estoy cambiando 1 vez la imagen
Gracias igualmente!!!!
Lo que busco es que cambie la imagen y quede fija la nueva imagen hasta volverlo a oprimir y alli retome la primera imagen del boton.
Como Ud. me lo indico solo lo cambia al oprimir pero no queda fija la nueva imagen.
me explico? solo quiero que el boton inicie con una imagen "efectivo.BMP" y al oprimirlo cambie a la imagen "cheque4.bmp" hasta que lo oprima nuevamente y regrese a la imagen de "efectivo.bmp".
he intentado de esta forma pero solo me cambia el CAPTION
DEFINE BUTTON oBoton1 OF oBar FILE "Efectivo.bmp" ;
ACTION (oBoton1:cCaption:='Cheque',oBoton1:FreeBitmaps(),oBoton1:LoadBitMaps("Cheque4.Bmp"),oBoton1:Paint(),oBoton1:refresh(),Cobros()) ;
MESSAGE "Mantenimiento de Cobros";
PROMPT "Cobros"
oBoton1:lTransparent = .t.
y se que solo estoy cambiando 1 vez la imagen
Gracias igualmente!!!!
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
Re: Cambio de imagen a 1 boton
Jose:
Puedes usar algo asi:
Puedes usar algo asi:
Code: Select all | Expand
#include "FiveWin.ch"
static oWnd
//----------------------------------------------------------------------------//
function Main()
local oBrush, oBar, oBoton1
DEFINE BRUSH oBrush STYLE TILED
DEFINE WINDOW oWnd FROM 1, 5 TO 20, 65 ;
TITLE "FiveWin ButtonBar & Menu Management" ;
BRUSH oBrush
DEFINE BUTTONBAR oBar SIZE 60, 60 _3D OF oWnd
DEFINE BUTTON OF oBar FILE "..\bitmaps\Exit.bmp" PROMPT "Salir" MESSAGE "End this session" ;
ACTION If( MsgYesNo( "Seguro de Salir ?", "Elija por favor" ),;
oWnd:End(), )
DEFINE BUTTON oBoton1 OF oBar FILE "..\bitmaps\Cut.bmp" PROMPT "Cambiar" MESSAGE "Copy" GROUP ;
ACTION Cambiarboton(oBoton1)
ACTIVATE WINDOW oWnd
return nil
//----------------------------------------------------------------------------//
STATIC FUNCTION Cambiarboton(oBot)
IF oBot:cCaption == 'Cambiar'
oBot:SetImages('..\bitmaps\paste.bmp')
oBot:cCaption := "Cambiar2"
ELSE
oBot:SetImages('..\bitmaps\Cut.bmp')
oBot:cCaption := "Cambiar"
ENDIF
RETURN nil
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Cambio de imagen a 1 boton
This can be achieved with far simpler code:
We can toggle both prompt and image using codeblocks as suggested above.
No need to keep loading bitmap again and again.
![Image](https://imagizer.imageshack.com/img923/2998/ml3P7b.gif)
Code: Select all | Expand
function BarBtnToggle()
local oWnd, oBar, oBtn
local nBmp := 1
DEFINE WINDOW oWnd
DEFINE BUTTONBAR oBar OF oWnd SIZE 64,64 2007
DEFINE BUTTON oBtn OF oBar ;
PROMPT { || If( nBmp == 1, "Open", "Close" ) } ;
FILE "\fwh\bitmaps\open32.bmp", "\fwh\bitmaps\close32.bmp" ;
ACTION ( nBmp := nXor( nBmp, 3 ), oWnd:Refresh() )
oBtn:bBmpNo := { || nBmp }
ACTIVATE WINDOW oWnd CENTERED ;
ON PAINT oWnd:SayText( If( nBmp == 1, "CLOSED", "OPENED" ) )
return nil
No need to keep loading bitmap again and again.
![Image](https://imagizer.imageshack.com/img923/2998/ml3P7b.gif)
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- cmsoft
- Posts: 1297
- Joined: Wed Nov 16, 2005 9:14 pm
- Location: Mercedes - Bs As. Argentina
- Been thanked: 2 times
-
- Posts: 212
- Joined: Wed Apr 07, 2021 3:56 pm
- karinha
- Posts: 7932
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Cambio de imagen a 1 boton
Usando RECURSOS:
Regards, saludos.
Code: Select all | Expand
DEFINE BUTTON oSaida RESOURCE "FECHAR", "FECHAR2" OF oBar ;
NOBORDER GROUP PROMPT "Saida" ;
MESSAGE "Sair do Programa" ;
ACTION( oSaida:Toggle(), ENCERRA( oWnd ), oSaida:GoUp() ) ;
TOOLTIP { "Encerrar Programa - Finalizar", ;
"Encerrar o Programa Agora? ", 1, CLR_WHITE, CLR_HBLUE }
oSaida:nWidth := 80 // 120
oSaida:oCursor := oHand
// Acionar processo em um movimento do Mouse sobre um botao...
oSaida:bMMoved = { | nRow, nCol, nFlags | MsgBeep() }
oSaida:lBoxSelect := .F.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Cambio de imagen a 1 boton
Sample using oBtn:Toggle()
Code: Select all | Expand
function BarBtnToggle()
local oWnd, oBar, oBtn
DEFINE WINDOW oWnd MDI
DEFINE BUTTONBAR oBar OF oWnd SIZE 64,64 2007
DEFINE BUTTON oBtn OF oBar ;
PROMPT { || If( oBtn:lPressed, "Close", "Open" ) } ;
FILE "\fwh\bitmaps\open32.bmp", "\fwh\bitmaps\close32.bmp" ;
ACTION Child( oBtn )
ACTIVATE WINDOW oWnd CENTERED
return nil
static function Child( oBtn )
static oWnd
if oBtn:lPressed
oWnd:End()
else
oBtn:Toggle()
DEFINE WINDOW oWnd MDICHILD OF WndMain() COLOR 0,CLR_WHITE
oWnd:bPostEnd := { || oBtn:Toggle() }
ACTIVATE WINDOW oWnd
endif
return oWnd
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
- karinha
- Posts: 7932
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Cambio de imagen a 1 boton
very good!!
Regards, saludos.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341