Page 1 of 1

es posible crear ... ? (SOLUCIONADO, mas o menos)

Posted: Wed Jan 15, 2020 8:35 pm
by JESUS MARIN
Hola a todos.

Es posible crear un objeto imagen (con un determinado tamaño ), sin recurso o fichero ?

vamos, un objeto imagen virtual.

Gracias

Jesús Marín
FWH 6.12

Re: es posible crear ... ?

Posted: Thu Jan 16, 2020 6:01 am
by Antonio Linares
Si, Windows proporciona la capacidad de hacerlo

Que necesitas hacer luego con ese objeto imagen ?

Re: es posible crear ... ?

Posted: Thu Jan 16, 2020 6:41 am
by JESUS MARIN
Buenos días Antonio.
Dentro de ese objeto imagen, quiero colocar otros objetos (imágenes, xbrowse, ….)
El tamaño sería variable, por lo que necesito poder cambiarlo en ejecución.

Por ejemplo, en un mantenimiento de artículos quiero poner artículos relacionados ( de la misma familia, artículos similares, variantes de color).

La imagen puede contener docenas de artículos relacionados y por tanto la imagen contenedora (que ya he implementado como moverme por ella ), contiene los datos.

Image

Image

Re: es posible crear ... ? (SOLUCIONADO, mas o menos)

Posted: Fri Jan 17, 2020 9:20 am
by JESUS MARIN
Buenas a todos.
No he creado la imagen virtual (seguiré investigando), pero voy avanzando con este nuevo control.
Ya lo puedo redimensionar en tiempo de ejecución.
Básicamente es ir haciendo zoom a la imagen de base. Esto cambia el tamaño. Obviamente no puede utilizarse para una imagen tipo plantilla, pero si para imágenes planas.
Os iré contando como voy avanzando, pero me parece que puede quedar muy bien.

El código para redimensionar es este :

Code: Select all


METHOD ResizeInf( nHeight)


LOCAL nZoom:=0
LOCAL N:=1

// POSICIONA LA IMAGEN ARRIBA

IF ::nX<0
   DO WHILE .T.
      IF ::nX>=0 ; EXIT ; ENDIF
      ::ScrollDown()
   ENDDO
ENDIF
::oNewScroll:nTop:=1
::oNewScroll:Refresh()


::Zoom(1)
::Refresh()

nZoom:=(nHeight/::nHeight)
::Zoom(nZoom)
::Refresh()

// RECALCULAR TAMAÑO SCROLL 
::nNewScrollDiferencial := ::nHeight/(::oWnd:nHeight)
::oNewScroll:nHeight:= (::oWnd:nHeight/::nNewScrollDiferencial)
::oNewScroll:nHeight:=::oNewScroll:nHeight+5
::oNewScroll:nTop:=1
::oNewScroll:Refresh()

RETURN(NIL)


 
Y como una imagen vale mas que mil palabras
OBJETO REDIMENSIONADO AL TAMAÑO (ALTURA) NECESARIO
Image