cambiar imagen en BTNBMP

Post Reply
José Camilo
Posts: 212
Joined: Wed Apr 07, 2021 3:56 pm

cambiar imagen en BTNBMP

Post by José Camilo »

Buenas noches.
Necesito modificar el archivo .bmp en un BTNBMP
Como se puede realizar?

Gracias
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: cambiar imagen en BTNBMP

Post by cmsoft »

Pudes hacerlo con SetImages

Code: Select all | Expand

#include "FiveWin.ch"
STATIC nImgSelect
FUNCTION Main()
Local oDlg, oBmp, oBot, aImg := {"..\bitmaps\cara1.jpg","..\bitmaps\cara2.jpg","..\bitmaps\cara3.jpg"}
nImgSelect := 1
DEFINE DIALOG oDlg TITLE "Cambiar Imagen" FROM 05,15 TO 40,70
@ 20,05 BTNBMP oBmp FILE aImg[nImgSelect] OF oDlg SIZE 190,225 ADJUST NOBORDER PIXEL
@ 05,60 BUTTON oBot PROMPT "Cambiar" SIZE 30,12 OF oDlg PIXEL ACTION Cambiar(oBmp,aImg)
ACTIVATE DIALOG oDlg CENTERED
RETURN nil

STATIC FUNCTION Cambiar(oBmp,aImg)
nImgSelect := nImgSelect + 1
IF nImgSelect > 3
   nImgSelect := 1
ENDIF
oBmp:SetImages(aImg[nImgSelect])
RETURN nil  
José Camilo
Posts: 212
Joined: Wed Apr 07, 2021 3:56 pm

Re: cambiar imagen en BTNBMP

Post by José Camilo »

Hola Cesar!!!
Gracias por responder.
por mi version de FWH (12.6) me da inexistente SETIMAGE...

Te comento rapido. estoy modificando el msgdate para hacerlo un poco mas grande y que muestre los feriados y ahora tambien si cada dia tiene tareas para realizar.

El mes inicial lo muestra correctamente en todo sentido.
muestra los domingos con texto en rojo y fondo color rojo claro, los feriados los muestra con el color de texto cambiado y los dias que tienen tareas los muestra con botones de color Verde Claro.
Hasta aca todo bien pero cuando muevo el mes o año muestra todo bien MENOS los dias que tienen TAREAS, sigue mostrando los del mes inicial aun cuando los dias numericos han cambiado, me explico.

lo tengo definido asi:

@ nLin, nColu BTNBMP ;
PROMPT Str( Day( dWork ), 2 ) SIZE 20, 20 FONT oFont4 ; //size 12,12 NOBORDER
FILENAME if(nColu=15,"RojoClaro20.Bmp",if(Tareas->(Dbseek(dWork,.f.)),"VerdeAgua20.BMP","AmarilloClaro20.BMP"));
ADJUST ;
ACTION ( oDlg:Cargo := ::Cargo, oDlg:End( IDOK ) )

y en el MOVECALENDAR esta asi:

for n := nFirstButton TO nLastButton
oDlg:aControls[ n ]:SetText( Str( Day( dWork ), 2 ) )

oDlg:aControls[ n ]:Cargo = dWork
oDlg:aControls[ n ]:nClrText = if( n=13 .or. n=20 .or. n=27 .or. n=34 .or. n=41 .or. n=48,CLR_HRED,;
If( dWork == Date(), CLR_BROWN,;
If( dWork == dSelect, CLR_HBLUE, If( Month( dWork ) == nMonth,;
CLR_BLACK , CLR_CYAN ) ) ) )

armofecha := dWork
if Feriados->(Dbseek(armofecha,.f.))
oDlg:aControls[ n ]:nClrText = CLR_MAGENTA
oDlg:aControls[ n ]:cToolTip = Feriados->Mensaje
else
oDlg:aControls[ n ]:cToolTip = DToC(dWork)
endif


******* ACA ES DONDE CREO TENER QUE REDEFINIR EL FONDO DEL BOTON y no se como hacerlo

if Tareas->(Dbseek(armofecha,.f.))
oDlg:aControls[ n ]: = "VerdeClaro20.bmp"
else
oDlg:aControls[ n ]: = "AmarilloClaro20.bmp"
endif
********


//oDlg:aControls[ n ]:cToolTip = DToC(dWork)
if dWork == dSelect
oDlg:aControls[ n ]:lPressed = .T.
oDlg:aControls[ n ]:cToolTip = "Selecciono"
endif
dWork++
next n


Si puedes hecharme una mano te agradezco, solo esto me falta para finalizarlo sino no hay problemas.

MUCHAS GRACIAS
User avatar
karinha
Posts: 7885
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: cambiar imagen en BTNBMP

Post by karinha »

Tal vez:

Code: Select all | Expand

   LoadBitmap()
 
ó:

Code: Select all | Expand

oBmp:Reload( GetResources(), "Reservada" ) // etc
 
Reagrds, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
José Camilo
Posts: 212
Joined: Wed Apr 07, 2021 3:56 pm

Re: cambiar imagen en BTNBMP

Post by José Camilo »

Hola Joao!!!
Gracias por interesarte.

aca se para que es cada cosa

oDlg:aControls[ n ]:nClrText = CLR_MAGENTA
oDlg:aControls[ n ]:cToolTip = Feriados->Mensaje

lo que no se es definir la sentencia para hacer referencia al nombre del BMP
el bmp no es un recurso, es un archivo

oDlg:aControls[ n ]: ???????? = " archivo.bmp"

me explico?

Gracias Joao
User avatar
karinha
Posts: 7885
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: cambiar imagen en BTNBMP

Post by karinha »

José: Use DTPICKER, mucho mas profesional.

Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: cambiar imagen en BTNBMP

Post by cmsoft »

Jose:
Prueba con :

Code: Select all | Expand

if Tareas->(Dbseek(armofecha,.f.))
    oDlg:aControls[ n ]:SetFile("VerdeClaro20.bmp")
    else
    oDlg:aControls[ n ]:SetFile("AmarilloClaro20.bmp")
endif
 
José Camilo
Posts: 212
Joined: Wed Apr 07, 2021 3:56 pm

Re: cambiar imagen en BTNBMP

Post by José Camilo »

Cesar.
Tu sugerencia funciona de maravillas.
MUCHAS GRACIAS !!!!
Post Reply