FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour cambiar imagen en BTNBMP
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 03:13 AM

Buenas noches.

Necesito modificar el archivo .bmp en un BTNBMP

Como se puede realizar?

Gracias

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 11:12 AM
Pudes hacerlo con SetImages
Code (fw): Select all Collapse
#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
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 03:41 PM

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

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 03:53 PM
Tal vez:
Code (fw): Select all Collapse
   LoadBitmap()
ó:
Code (fw): Select all Collapse
oBmp:Reload( GetResources(), "Reservada" ) // etc
Reagrds, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 04:24 PM

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

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 06:06 PM

José: Use DTPICKER, mucho mas profesional.

Gracias.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 07:50 PM
Jose:
Prueba con :
Code (fw): Select all Collapse
if Tareas->(Dbseek(armofecha,.f.))
    oDlg:aControls[ n ]:SetFile("VerdeClaro20.bmp")
    else
    oDlg:aControls[ n ]:SetFile("AmarilloClaro20.bmp")
endif
Posts: 212
Joined: Wed Apr 07, 2021 03:56 PM
Re: cambiar imagen en BTNBMP
Posted: Fri Jun 21, 2024 11:16 PM

Cesar.

Tu sugerencia funciona de maravillas.

MUCHAS GRACIAS !!!!

Continue the discussion