Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Redimensionar TImage (https://www.clubdelphi.com/foros/showthread.php?t=69798)

ElDuc 09-09-2010 20:07:04

Redimensionar TImage
 
Hola a todos,

Estoy trabajando con el componente TImage que utilizo para pintar formas en su canvas, con Rectangle, LineTo, etc.

Cuando ejecuto el programa el TImage se ve blanco en toda su extensión, y si dibujo (como he indicado) todo va bien.

El problema que tengo es que si redimensiono el TImage en tiempo de ejecución, por ejemplo, paso de un tamaño inicial de 100x100 (sobre el que se dibuja bien) a un tamaño de 200x200, el cuadro blanco sigue siendo el mismo y los dibujos que hago sólo se ven en ese cuadrado inicial de 100x100 a pesar de que el TImage ahora es de 200x200.

No sé cómo solucionarlo, ¿es posible cambiar ese tamaño?

Gracias de antemano por ayudarme.

Neftali [Germán.Estévez] 10-09-2010 11:25:07

No se si la propiedad Stretch te puede ayudar.
Lo otro que se me ocurre es guardar la imagen antes de redimensionarla y cargarla cuando acabe el redimensionado (Stretch a True).
Haz alguna prueba a ver si resulta.

Lo otro es que si tienes guardados los objetos que has pintado (coordenadas y tamaños), cuando redimensionas el TImage, recalcules las nuevas dimensiones de los objetos para adaptarlos al nuevo area y los "redibujes" de nuevo; Por ejemplo, si tienes un cuado de 10x10 y amplias la altura de la imagen al doble, deberías "redibujar" el cuadrop con las dimensiones 10x20 (ya que se ha doblado la altura del TImage).

Otra opción es pasar a utilizar algun componente específico de dibujo que te solvente estas cosas y muchas otras por el estilo. Por ejemplo TSimpleGraph, del que he hablado otras veces aquí, y que considero un componente fantástico.

yapt 10-09-2010 22:34:19

Yo creo que este articulo del Delphi About te puede ayudar mucho, realmente el artículo trata sobre hacer "miniaturas (thumbnails) de formularios, pero su principal objetivo es el redimensionamiento de una imagen (el propio formulario):

http://delphi.about.com/od/graphics/a/resize_image.htm

Suerte.

ElDuc 13-09-2010 10:52:25

Muchas gracias a los dos,

Estoy haciendo pruebas y buscando por todas partes.

Por el momento he avanzado creando una clase que se linca al TImage y que me está funcionando bien, el problema es que mi nueva clas no se entera si el TImage cambia de dimensión.

¿Sabéis si se puede poner un evento que se dispare cuando se redimensiona un objeto?, como el resize del TForm.

Saludos


La franja horaria es GMT +2. Ahora son las 01:02:06.

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