Refrescar un control Bitmap

Post Reply
User avatar
Pedro
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Refrescar un control Bitmap

Post by Pedro »

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

   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
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Refrescar un control Bitmap

Post by Armando »

Pedro:

Intenta actualizando y refrescando el dialogo dentro del ACTION

Code: Select all | Expand

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
karinha
Posts: 7943
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Refrescar un control Bitmap

Post by karinha »

Ó,

Code: Select all | Expand

    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
Pedro
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Refrescar un control Bitmap

Post by Pedro »

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

Post by Pedro »

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
cnavarro
Posts: 6558
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: Refrescar un control Bitmap

Post by cnavarro »

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
mastintin
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Refrescar un control Bitmap

Post by mastintin »

es esto lo que buscas ? .

Code: Select all | Expand

#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
karinha
Posts: 7943
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Refrescar un control Bitmap

Post by karinha »

FWH..\SAMPLES\TESTIMG.PRG

Code: Select all | Expand

#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 CENTERreturn 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 )   endifreturn nil//----------------------------------------------------------------------------//function PrintImage( oImage )   local oPrn   PRINT oPrn NAME "Image Printing" PREVIEW      PAGE         oPrn:SayImage( 0, 0, oImage )      ENDPAGE   ENDPRINTreturn nil//----------------------------------------------------------------------------// 


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
cuatecatl82
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México
Contact:

Re: Refrescar un control Bitmap

Post by cuatecatl82 »

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

METHOD LoadImage( cResName, cBmpFile, cResFile ) CLASS TImage


No es lo mismo abrir un recurso:

Code: Select all | Expand

LoadImage("BMP_GUARDAR")


que un archivo en disco:

Code: Select all | Expand

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
Post Reply