Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imagen se monta encima del texto (https://www.clubdelphi.com/foros/showthread.php?t=82174)

andriy_89 05-02-2013 13:33:52

Imagen se monta encima del texto
 
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

Cita:

Empezado por Chris (Mensaje 454548)
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

Cita:

Empezado por andriy_89 (Mensaje 454750)
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:

Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 05:07:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi