Ya lo he conseguido , lo que hago para que no se me vean los margenes es
aplicar un Zoom unico en ancho y alto y despues ajustar el TImage al tamaño
del oPicture .Este es el codigo
// Tengo creado el objeto TImage (oImage1)
// Creo el objeto TPicture
WITH OBJECT ::oImagen:=TPicture():New()
:cName := ::aImagen[::nImagen] // O el nombre del fichero a
visualizar
:Create()
END
// Se lo asigno al obeto TImage
::oImage1:SetPicture(::oImagen)
// Los valores originales del objeto TIMage que he guardado en
::oImage1:ONCreate()
::oImage1:nWidth := ::nWidthImg
::oImage1:nHeight:= ::nHeightImg
// Calculo un Zoom del TImage para poder encajar la foto
if ::oImage1:nWidth > ::oImagen:nWidth // imagen horizontal
::oImage1:nZoom := ::oImage1:nWidth *100 / ::oImagen:nWidth
else
::oImage1:nZoom := ::oImage1:nHeight * 100 / ::oImagen:nHeight
endif
// Reduzco el Objeto TImage para que no me queden margenes sin rellenar
(queda muy feo)
if ::oImage1:nWidth > ::oImage1:nZoom * ::oImagen:nWidth /100
::oImage1:nWidth := ::oImage1:nZoom * ::oImagen:nWidth /100
endif
if ::oImage1:nHeight > ::oImage1:nZoom * ::oImagen:nHeight /100
::oImage1:nHeight := ::oImage1:nZoom * ::oImagen:nHeight /100
endif
::oImage1:vAdjust(.t.) //Me hace el ajuste vertical (heredado de
TScrollingWinControl)
::oImage1:hAdjust(.t.) //Me hace el ajuste horizontal
Un saludo.Juanjo
"Jose F. Gimenez" <
jfgimenez@wanadoo.es> escribió en el mensaje
news:438b05dd$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
>> Tambien podrias utilizar un tBevel que para el efecto te va a ser lo
>> mismo. El tBevel si tiene para que la imagen se autoajuste. Usa
>> nBkgndmode := bblSTRETCH y la imagen se autoajustara al tamaño del
>> tbevel.Con obkgnd indicas la imagen a mostrar.
>
> Sí, pero no. Si usas un TBevel de esa forma, te distorsiona la imagen. En
> cambio, TImage siempre respeta las proporciones.
>
>
> --
> Un saludo,
>
> José F. Giménez
>