FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour es posible crear ... ? (SOLUCIONADO, mas o menos)
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM

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

Posted: Wed Jan 15, 2020 08:35 PM

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

Jesús Marín
deumare@gmail.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: es posible crear ... ?

Posted: Thu Jan 16, 2020 06:01 AM

Si, Windows proporciona la capacidad de hacerlo

Que necesitas hacer luego con ese objeto imagen ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM

Re: es posible crear ... ?

Posted: Thu Jan 16, 2020 06:41 AM
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.



Jesús Marín
deumare@gmail.com
Posts: 199
Joined: Wed Jan 02, 2019 08:36 AM

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

Posted: Fri Jan 17, 2020 09:20 AM
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 (fw): Select all Collapse
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
Jesús Marín
deumare@gmail.com

Continue the discussion