Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modificar forma de TImage (https://www.clubdelphi.com/foros/showthread.php?t=88630)

mati_pincha 07-07-2015 05:18:10

Modificar forma de TImage
 
Hola gente, cómo están?

les comento que he programado en Delphi antes pero me considero un novato. He hecho un programa el cual ahora quiero mejorar, y el problema que me surge es saber si puedo modificar la forma que tiene el objeto TImage como yo quiera, estáticamente; que en lugar de ser un cuadrado, tenga otra forma, como un circulo o la que necesite. Desde ya agradezco su ayuda!

Saludos!

nlsgarcia 07-07-2015 09:04:29

mati_pincha,

¡Bienvenido al Club Delphi! :D

Nelson.

Ñuño Martínez 07-07-2015 13:06:26

Hola mati_pincha, bienvenido al Club. Como a todos, te recordamos que te pases por la Guía de estilo si no lo has hecho ya.

Respecto a tu pregunta, un TImage puede contener cualquier imagen, así que si la imagen es circular, aparecerá circular. Sin embargo, el TImage siempre será rectangular. Quizá te interese usar un TPaintBox, ya que permite dibujar cualquier cosa con cualquier forma, incluyendo imágenes. Puedes cargar la imagen en un TImage y luego copiarla con la forma que quieras en el TPaintBox (aunque puede tener algo de truco, pero no es muy difícil).

mati_pincha 08-07-2015 01:03:30

Hola Ñuño, muchas gracias por tu respuesta y tus saludos!
claro, te explico mejor lo que quiero lograr. En mi programa tengo algunas imágenes las cuales el usuario hace click sobre ellas para cambiar su forma; el problema con esto es que originalmente esas imágenes no son rectangulares sino que tienen una forma en particular, y si solo cambiase la imagen del TImage por lo que deseo, no estaría logrando el objetivo ya que, por ejemplo: si vos tenés una imagen de un circulo en el TImage y quieres clickear sobre él, también estarías clickeando sobre la imagen si clickeas sobre el rectángulo del TImage sin posarte exactamente arriba del circulo; por esto mi deseo de modificar la forma del TImage con el fin de que tenga la misma forma que tiene mi imagen. Espero haberme expresado bien y que se entienda! Quizás es como decis y no se puede modificar, así que observaré el TPaintBox a ver si me ayuda. Cualquier sugerencia es bienvenida.

Gracias de nuevo y saludos!

Matias

mati_pincha 08-07-2015 01:04:02

Cita:

Empezado por nlsgarcia (Mensaje 494112)
mati_pincha,

¡Bienvenido al Club Delphi! :D

Nelson.

Gracias Nelson!

Ñuño Martínez 08-07-2015 11:12:20

El problema que planteas es diferente. Lo que quieres es saber si se ha pulsado sobre una imagen, teniendo en cuenta que dicha imagen no es rectangular. Todos los componentes son rectangulares, en cuanto a eventos del ratón se refiere. Deberás comprobar las coordenadas del ratón en el momento de pulsar (onMouseDown y onMouseUp).

mati_pincha 08-07-2015 17:05:35

Cita:

Empezado por Ñuño Martínez (Mensaje 494159)
El problema que planteas es diferente. Lo que quieres es saber si se ha pulsado sobre una imagen, teniendo en cuenta que dicha imagen no es rectangular. Todos los componentes son rectangulares, en cuanto a eventos del ratón se refiere. Deberás comprobar las coordenadas del ratón en el momento de pulsar (onMouseDown y onMouseUp).

Claro, eso es lo que quiero lograr. No lo había pensado así, pero es una buena posibilidad así que lo intentaré ya que tengo muuuchas imágenes iguales en el mismo Form (el cual representa un odontograma utilizado por un Odontólogo).

Gracias Ñuño!

Un saludo. Matias


La franja horaria es GMT +2. Ahora son las 14:38:56.

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