SOLUCIONADO Alternar fondo de pantalla BMP segun valor

SOLUCIONADO Alternar fondo de pantalla BMP segun valor

Postby PP1963 » Fri Sep 15, 2023 10:10 am

Buenos días,
Necesito alternar la imagen del fondo BMP de de pantalla (completa), según un valor, solo hay 2 posibilidades, o 1 ó 2.
Consigo que abra el BMP del 1er valor, pero al capturar el segundo, permanece en pantalla el primero.
Se que hago algo mal. Es la primera vez que me meto en este charco.
Gracias de antemano.
Code: Select all  Expand view
if valor3 = 1
    @  0,0 BITMAP oBmp FILE "bmp1.bmp" OF oDlg pixel size 1920,1080
elseif valor3 = 2
  @  0,0 BITMAP oBmp FILE "bmp2.bmp" OF oDlg pixel size 1920,1080
endif
Last edited by PP1963 on Fri Sep 15, 2023 2:32 pm, edited 1 time in total.
La perseverancia es la virtud de los que llegan a la meta.
User avatar
PP1963
 
Posts: 22
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: Alternar fondo de pantalla BMP segun valor obtenido.

Postby cmsoft » Fri Sep 15, 2023 12:20 pm

Hola, en que contexto lo haces? Hay un valor que cambia en el transcurso del programa y queres actualizar la imagen?
Prueba recargando la imagen con oBmp:LoadImage("bmp2.bmp")

Code: Select all  Expand view
#include "FiveWin.ch"

function Main()
                                                                     
   local n := 1, oBmp, oBtn, oDlg
   DEFINE WINDOW oDlg TITLE "Cambiar imagen"    
   @ 2, 2 BTNBMP oBtn OF oDlg ACTION ((n := IF(n = 1, 2, 1),;
          oBmp:LoadImage(IF(n=1,"..\bitmaps\cara2.bmp","..\bitmaps\cara3.bmp")),;
          oBmp:Refresh())) PROMPT "Cambiar";
   SIZE 60,60 ADJUST
   @  2,100 BITMAP oBmp FILE "..\bitmaps\cara2.bmp" OF oDlg pixel size 1920,1080
 
   ACTIVATE WINDOW oDlg            
   
   

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

Re: Alternar fondo de pantalla BMP segun valor obtenido.

Postby karinha » Fri Sep 15, 2023 1:35 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Alternar fondo de pantalla BMP segun valor obtenido.

Postby PP1963 » Fri Sep 15, 2023 2:17 pm

Muchísimas gracias por vuestra ayuda. Ha funcionado con PALMBMPDRAW
Un abrazo.

Enviado desde mi 22081212UG mediante Tapatalk
La perseverancia es la virtud de los que llegan a la meta.
User avatar
PP1963
 
Posts: 22
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: Alternar fondo de pantalla BMP segun valor obtenido.

Postby PP1963 » Fri Sep 15, 2023 2:31 pm

Code: Select all  Expand view


if valor3 = 1

    oBmp = readbitmap( 0, "bmp1.bmp" )
    cambiaback( oDlg, hDC2, oBmp )  

elseif valor3 = 2

     oBmp = readbitmap( 0, "bmo2.bmp" )
    cambiaback( oDlg, hDC2, oBmp )

endif[

STATIC FUNCTION cambiaback( oWnd, hDC2, hBmp )

    LOCAL nTop:=0, LOCAL nLeft:=0, nWidth:=oWnd:nWidth(), nHeight:=oWnd:nHeight()

    IF hBmp = 0
      RETURN NIL
    ENDIF

    PALBMPDRAW( hDC2, nTop, nLeft, hBmp, , nWidth, nHeight )

    RETURN NIL
 
La perseverancia es la virtud de los que llegan a la meta.
User avatar
PP1963
 
Posts: 22
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 68 guests