Refrescar un control Bitmap

Refrescar un control Bitmap

Postby Pedro » Tue Nov 03, 2015 5:56 pm

Hola a todos

Como siempre vengo pidiendo. Estoy con un pequeño proyecto y necesito que al ingresar en un get la ruta de un bitmap, este sea presentado en un control bitmap, pero no lo consigo
Este es el código que tengo :
Code: Select all  Expand view
  REDEFINE GET oGet[ 9] VAR aDatLec[10] ID 4110 PICTURE "@!" ;
            BITMAP "BUSCAR1" ACTION (aDatLec[10] := RUTAFOTO(),;
            oGet[ 9]:Refresh(),PostMessage( ::hWnd, WM_KEYDOWN, 13 ) )  ;
            COLOR RGB(0,0,153),RGB(208,255,192) OF oFolder:aDialogs[1] UPDATE
   REDEFINE BITMAP oBmp ID 4111 OF oFolder:aDialogs[1] ;
               FILENAME aDatLec[10] ;
               ADJUST;
               UPDATE;
               TRANSPARENT  

En el get y en la variable aDatLec[10] quedan perfectos los datos, pero el control siguiente, el Bitmap, no se refresca ni presenta la foto, hasta que salgo del diálogo y vuelvo a entrar, entonces si presenta la foto.
Hay alguna manera de que al ingresar la ruta se refresque y presente la foto el Bitmap ?

Agradecido a todos
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Refrescar un control Bitmap

Postby Armando » Tue Nov 03, 2015 6:22 pm

Pedro:

Intenta actualizando y refrescando el dialogo dentro del ACTION

Code: Select all  Expand view

REDEFINE GET oGet[ 9] VAR aDatLec[10] ID 4110 PICTURE "@!" ;
            BITMAP "BUSCAR1" ACTION (aDatLec[10] := RUTAFOTO(),;
            oGet[ 9]:Refresh(),oDlg:UPDATE(),oDlg:REFRESH(),PostMessage( ::hWnd, WM_KEYDOWN, 13 ) )  ;
            COLOR RGB(0,0,153),RGB(208,255,192) OF oFolder:aDialogs[1] UPDATE
 


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Refrescar un control Bitmap

Postby karinha » Tue Nov 03, 2015 6:47 pm

Ó,

Code: Select all  Expand view

    IF .NOT. FILE( XFOTOSCLI )

       XSEMFOTO := "SEMFOTO.JPG"

       REDEFINE IMAGE oImagem ID 201       ;
                OF oFld:aDialogs[2]        ;
                FILENAME XSEMFOTO          ;
                UPDATE   CURSOR  oHand
               
       oImagem:Progress( .F. )
       oImagem:lStretch := ( .F. )
       oImagem:Refresh()
   
    ELSE

       REDEFINE IMAGE oImagem ID 201       ;
                OF oFld:aDialogs[2]        ;
                FILENAME DbClientes:Fotos  ;
                UPDATE   CURSOR  oHand
               
       oImagem:Progress( .F. )
       oImagem:lStretch := ( .T. )
       oImagem:Refresh()

    ENDIF
 


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

Re: Refrescar un control Bitmap

Postby Pedro » Tue Nov 03, 2015 7:12 pm

Armando no funciona, no refresca el bitmap

Karinha, no vi tu comentario hasta ahora probaré como dices

gracias a los dos
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Refrescar un control Bitmap

Postby Pedro » Tue Nov 03, 2015 7:44 pm

Karinha no funciona tu forma de ponerlo, no refresca hasta que no sales y vuelves a entrar en el dialogo
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Refrescar un control Bitmap

Postby cnavarro » Tue Nov 03, 2015 7:46 pm

Has probado con un control IMAGE?
En el sample\RE.PRG tienes un ejemplo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Refrescar un control Bitmap

Postby mastintin » Wed Nov 04, 2015 8:23 am

es esto lo que buscas ? .
Code: Select all  Expand view

#include "FiveWin.ch"

Function Main ()

   LOCAL oDlg
   
   LOCAL cFoto,ofoto
   LOCAL cBmp,oBmp
   LOCAL cTitle := "Gestión de fotos "
   local cNoexiste := "c:\fwh\bitmaps\no.bmp"
   cFoto   := Space(50)
   
   DEFINE DIALOG oDlg FROM 0,0 TO 514, 606  PIXEL  ;
      TITLE cTitle

     @ 10, 10 BITMAP oBmp File "" SIZE 280,190 OF oDlg PIXEL NOBORDER

     @ 216,15 say  " Foto :" OF oDlg SIZE 34,12 PIXEL
     @ 214,45 GET ofoto VAR cFoto  OF oDlg SIZE 124,12 PIXEL ;
          BITMAP "lupa5"  ;
          ACTION(  cBmp:= cgetfile( "*.*","Escoje una Imagen" ),;
                  IF (!Empty(cBmp),ofoto:cText(cBmp),) );
          VALID ( oBmp:LoadBmp( if( !file( cfoto ), cNoexiste, cfoto ) ), ;
                  obmp:refresh(), .t. )
         
       
     @ 240,262  BUTTON "&Salir" OF oDlg SIZE 34,12 PIXEL ACTION oDlg:End()

     ACTIVATE DIALOG oDlg CENTERED    

RETURN nil
 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Refrescar un control Bitmap

Postby karinha » Wed Nov 04, 2015 2:04 pm

FWH..\SAMPLES\TESTIMG.PRG

Code: Select all  Expand view

#include "FiveWin.ch"
#include "Image.ch"

//----------------------------------------------------------------------------//

function Main()

   LOCAL oDlg, oImage, lSetAlpha := .t.

//   setalpha( .f. )

   DEFINE DIALOG oDlg FROM 0, 0 TO 22, 60 ;
      TITLE FWDESCRIPTION + " JPG,JIF,GIF,BMP,DIB,RLE,TGA,PCX support!"

   @ 0, 0 IMAGE oImage SIZE 150, 150 OF oDlg SCROLL // ADJUST

   oImage:Progress( .f. )
   //oImagem:lStretch := ( .T. )

   @ 1, 28 BUTTON "Select Image" SIZE 50,10 OF oDlg ACTION GetImage( oImage )

   @ 2, 28 BUTTON "Print" SIZE 50,10 OF oDlg ACTION PrintImage( oImage )

   @ 3, 28 BUTTON "Copy" SIZE 50, 10 OF oDlg ;
      ACTION oImage:CopyToClipboard()

   @ 4, 28 BUTTON "Paste" SIZE 50, 10 OF oDlg ;
      ACTION ( oImage:LoadFromClipboard(), oImage:Refresh() )

   @ 5, 28 BUTTON "Save" SIZE 50, 10 OF oDlg ;
      ACTION ( oImage:SaveImage( "SAVED.JPG", 2, 25 ), MsgInfo( "saved as saved.jpg" ) )

   @ 6, 28 BUTTON "Exit" SIZE 50, 10 OF oDlg ACTION oDlg:End()
   
   @ 10, 26 CHECKBOX oImage:lStretch PROMPT "Stretch" SIZE 50, 10 OF oDlg ;
      ON CHANGE ( oImage:ScrollAdjust(), oImage:Refresh() )

   @ 11, 26 CHECKBOX lSetAlpha PROMPT "Set Alpha Channel" SIZE 80, 10 OF oDlg ;
      ON CHANGE ( SetAlpha( lSetAlpha ), oImage:Refresh() )


   ACTIVATE DIALOG oDlg CENTER

return nil

//----------------------------------------------------------------------------//

function GetImage( oImage )

   local gcFile := cGetFile( "Bitmap (*.bmp)| *.bmp|" +         ;
                             "DIB   (*.dib)| *.dib|" +          ;
                             "PCX   (*.pcx)| *.pcx|"  +         ;
                             "JPEG  (*.jpg)| *.jpg|" +          ;
                             "GIF   (*.gif)| *.gif|"  +         ;
                             "TARGA (*.tga)| *.tga|" +          ;
                             "RLE   (*.rle)| *.rle|" +          ;
                             "All Files (*.*)| *.*"             ;
                            ,"Please select a image file", 4 )

   if ! Empty( gcFile ) .and. File( gcFile )
      oImage:LoadBmp( gcFile )
   endif

return nil

//----------------------------------------------------------------------------//

function PrintImage( oImage )

   local oPrn

   PRINT oPrn NAME "Image Printing" PREVIEW
      PAGE
         oPrn:SayImage( 0, 0, oImage )
      ENDPAGE
   ENDPRINT

return nil

//----------------------------------------------------------------------------//
 


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

Re: Refrescar un control Bitmap

Postby cuatecatl82 » Wed Nov 04, 2015 4:52 pm

Saludos a todos:

a veces cometemos el error de omitir que tipo de recurso vamos a abrir, en el caso de imagenes muchas veces hacemos:

oBmp:LoadImage("lo_que_sea")


Sin tomar en cuenta y decirle al control que lo que queremos abrir es un recurso incrustado dentro de nuestra aplicación, o un archivo desde disco, ovbimanente ambos deben existir para que se pueda vizualizar, en el caso de Imagenes, el Methodo LoadImage tiene sus condicionales:

Code: Select all  Expand view
METHOD LoadImage( cResName, cBmpFile, cResFile ) CLASS TImage


No es lo mismo abrir un recurso:

Code: Select all  Expand view
LoadImage("BMP_GUARDAR")


que un archivo en disco:

Code: Select all  Expand view
LoadImage(, "C:\GUARDAR.BMP")


Tomen en cuenta la coma "," antes de indicar el archivo a abrir, y en el caso de los Recursos siempre poner los nombres en mayusculas, a mi me ha pasado que este detalle me hace perder tiempo, algunas veces los compiladores con Case Sensitive..

Espero pueda ser de ayuda Saludos.. :D :D :D
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests