PDA

Ver la Versión Completa : Imagen se monta encima del texto


andriy_89
05-02-2013, 13:33:52
Al diseñar un informe en fr, en la cabecera pongo un campo imagen (algunas veces es cuadrado y otras rectangular) y al lado de la imagen tengo datos.
Pero el problema es que cuando se carga la imagen rectangular se monta la imagen encima del texto.
Hay alguna manera de solucionarlo?

Casimiro Notevi
05-02-2013, 14:39:16
La imagen tendrá alguna propiedad para que se ajuste o expanda, selecciona la que más te interese.

andriy_89
05-02-2013, 15:49:35
ya pero el problema esta en que las fotos son o cuadradas o rectangulares y al lado de la imagen se pone texto y lo único que puedo hacer es que se adapte a forma predeterminada, deformando la imagen...
lo que necesito es que se ponga bien y desplace el texto para que no se monten uno encima de otro

Chris
05-02-2013, 16:22:49
La propiedad que necesitas creo que se llama 'KeepAspectRadio', o algo así. Por otro lado, FastReport no soporta el ajuste horizontal de los controles. Tendrás que hacerlo 'a mano'. Creo que el componente TfrxPicture tiene propiedades que te permiten leer el ancho y alto de las imágenes. Conforme a estas medidas puedes ajustar las cajas te texto laterales.

Saludos!

andriy_89
05-02-2013, 17:39:55
La propiedad que necesitas creo que se llama 'KeepAspectRadio', o algo así. Por otro lado, FastReport no soporta el ajuste horizontal de los controles. Tendrás que hacerlo 'a mano'. Creo que el componente TfrxPicture tiene propiedades que te permiten leer el ancho y alto de las imágenes. Conforme a estas medidas puedes ajustar las cajas te texto laterales.

Saludos!

y como utilizo la propiedad de ancho y alto?? Es que estoy empezando con esto de los informes y estoy un poco pez...

andriy_89
08-02-2013, 09:17:10
Al final lo he solucionado con dos plantillas diferentes, una con la imagen ancha y otra cuadrada.
Gracias por la ayuda

Chris
08-02-2013, 21:07:57
Al final lo he solucionado con dos plantillas diferentes, una con la imagen ancha y otra cuadrada.
Gracias por la ayuda

Para desplazar el texto, puedes utilizar el siguiente código en el evento "OnBeforePrint" de la banda de cabezera:

procedure ReportTitle1OnBeforePrint(Sender: TfrxComponent);
var
image_width: Integer;
begin
image_width := int(photo_image.width);
sibling_label.left := (photo_image.left + photo_image.width) + (photo_image.picture.width - image_width);
end;

En dónde "photo_image" es el objeto que muestra la foto y "sibling_label" es el texto al lado de la imagen. Este código toma en cuenta que el texto esté al lado derecho de la imagen.

Todos los objetos TfrxPictureView traen adjunto un TPicture (el mismo que Delphi). Por medio de la propiedad "Picture" de TfrxPictureView puedes acceder a él y manipularlo o leer sus propiedades, a cómo estoy haciendo en este caso.

Saludos.