Imagen con Timage

Imagen con Timage

Postby JoseLuis » Sat Jan 06, 2007 2:09 pm

Hola Amigos

Quisiera pintar en un recuadro un albaran que he extraido de un array y no me lo pinta, utilizo freeimage y lo hago así

Cargo el array y extraigo el primer fichero .jpg
*************************

ficheros:=cargaarray()

static function cargaarray()
local i,ficheros,longitud,numfiles
Ficheros := Array( ADir( Publicas:cUnidad+"*.jpg" ) )
Longitud := Array( ADir( Publicas:cUnidad+"*.jpg" ) )
NumFiles := aDir (Publicas:cUnidad+"*.jpg", Ficheros, Longitud)
return ficheros[1]
**************************
Ahora defino la imagen
oBmp1:= TImage():Define( , Publicas:cUnidad+Ficheros )

Y ahora en un Dialogo que tengon un control destinado a ello, lo pinto
REDEFINE IMAGE oBmp1 ID 4001 OF oDlg SCROLL ADJUST UPDATE
oBmp1:Progress( .f. )
********************
Que me falta?

El control del Dialogo lo he creado con pellesc y lo he probado como custom control y como bitmap.

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Sat Jan 06, 2007 8:28 pm

José Luis,

Esto no hace falta:
oBmp1:= TImage():Define( , Publicas:cUnidad+Ficheros )

Añade este comando a FiveWin.ch:
Code: Select all  Expand view
#xcommand REDEFINE IMAGE [ <oBmp> ] ;
             [ ID <nId> ] ;
             [ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
             [ <resource: NAME, RESNAME, RESOURCE> <cResName> ] ;
             [ <file: FILE, FILENAME, DISK> <cBmpFile> ] ;
             [ <lClick: ON ClICK, ON LEFT CLICK> <uLClick> ] ;
             [ <rClick: ON RIGHT CLICK> <uRClick> ] ;
             [ <scroll: SCROLL> ] ;
             [ <adjust: ADJUST> ] ;
             [ CURSOR <oCursor> ] ;
             [ MESSAGE <cMsg>   ] ;
             [ <update: UPDATE> ] ;
             [ WHEN <uWhen> ] ;
             [ VALID <uValid> ] ;
             [ <transparent: TRANSPARENT> ] ;
       => ;
          [ <oBmp> := ] TImage():ReDefine( <nId>, <cResName>, <cBmpFile>,;
             <oWnd>, [\{ |nRow,nCol,nKeyFlags| <uLClick> \}],;
                     [\{ |nRow,nCol,nKeyFlags| <uRClick> \}],;
             <.scroll.>, <.adjust.>, <oCursor>, <cMsg>, <.update.>,;
             <{uWhen}>, <{uValid}>, <.transparent.> )

Y en tu programa haz:
Code: Select all  Expand view
REDEFINE IMAGE oBmp1 ID 4001 OF oDlg SCROLL ADJUST UPDATE
oBmp1:Progress( .f. ) FILENAME Publicas:cUnidad+Ficheros
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41945
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Sat Jan 06, 2007 10:15 pm

Gracias Antonio

Lo he probado y funciona

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby JoseLuis » Sat Jan 06, 2007 11:33 pm

Una cuestión mas y ya acabo

Como he explicado hago el siguiente proceso:
- Cargo las imagenes del directorio en un array
- Pinto la primera a la vez que el nombre de la imagen me sirve de número de albaran.
- Cuando acepto, borro el fichero jpg del directorio y vuelvo a hacer la misma operación sin salir del dialogo, es decir cargar las imagenes y coger la primera.
Pero ahora veo que me ha borrado el fichero del directorio, aunque me sigue presentando en pantalla la imagen anterior. Tengo que salir del diálogo, volver a entrar para que me refresque la imagen. Aunque ponga oDlg:Update() o oBmp1:Refresh() sigue mostrandome la imagen que ya está borrada.

Como Refresco a la nueva imagen?

Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Sun Jan 07, 2007 12:11 am

oBmp1:LoadImage( , cNombreImagen )
oBmp1:Refresh()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41945
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Sun Jan 07, 2007 10:10 am

Gracias Antonio

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Cgallegoa, Google [Bot] and 40 guests