PDA

Ver la Versión Completa : Imágenes sin fondo


Alfonsoft
03-10-2007, 16:10:01
Buenas,

¿Que puedo hacer en Turbo Delphi para que las imágenes no tengan fondo?

Gracias!

Delphius
03-10-2007, 16:14:10
Hola Alfonsoft,

¿A que te refieres con que no tenga fondo?
Podrías explicarte mejor?

Mira, lo que me estoy imaginando... es que quieres que parte de una imagen sea transparente. Revisa la propiedad Transparent del TImage.

Saludos,

Alfonsoft
03-10-2007, 16:17:55
Eectivamente, tengo por ejemplo la imagen de una flecha y quiero que solo se vea la flecha, no el fondo de la imagen.

Se que esto se solucionaría con un .gif, pero turbo delphi no admite.

Delphius
03-10-2007, 16:35:48
Suponiendo que la imagen es un BMP haz lo siguiente:

1. Estableces en True la propiedad Transparent del TImage.
2. Indicas cual es el color a tomar como transparente. Esto se consigue cambiando el valor a TransparentColor. Por ejemplo:


Image1.Picture.Bitmap.TransparentColor := RGb(0,0,0);


Indica que sea el negro como color transparente.

EDITO: Por defecto, TransparentColor es blanco. Asi que si el fondo es blanco te evitas la asignación y con el simple Transparent en True te basta.

Saludos,

tazzmk
06-10-2007, 05:27:12
hola como se puede hacer este efecto

imagen_01
(http://s1.subirimagenes.com/imagenes/previo/thump_14991772007-10-05_231604.gif)
imagen_02 (http://s1.subirimagenes.com/imagenes/previo/thump_14991792007-10-05_232019.gif)

si se fijan bien en los bordes, es trasparente, por lo cual la flecha del mouse no toma el formulario, solo toma lo que es imagen.

se podra hacer eso en delphi 7?
en cambio en un formulario tradicional son en rectangulo.

es un efecto muy llamativo, saludos

Delphius
06-10-2007, 05:37:45
Hola tazzmk,
No me queda bien en claro lo que preguntas. ¿Te refieres a que el form sea transparente? Si es asi, fijate que tiene dos propiedades:
1. TransparentColor: que indica si debe ser transparente.
2. TransparentColorValue: cual es el color a tomar como transparencia.

Si no es eso... ¿serías tan amable de explicarte mejor?

Saludos,

tazzmk
06-10-2007, 07:06:55
hola delphius gracias por tu ayuda

imagen_03 (http://s1.subirimagenes.com/imagenes/previo/thump_14992652007-10-06_005021.gif)

es en formulario, que no sea cuadrado sino con bordes, y en algunos lados del borde es transparente. es como se ve en la imagen_03 (http://s1.subirimagenes.com/imagenes/previo/thump_14992652007-10-06_005021.gif)

yo creo que hay tal vez hay que quitarle BorderStyle: bsNone y poner una imagen en su lugar,la imagen reemplaza al formulario.

transparent (http://s1.subirimagenes.com/imagenes/previo/thump_14992732007-10-06_005914.gif)

color transparente lo probe pero no me funciona, quisas me equivoque en algo
lo puse en "true"

saludos

Lepe
06-10-2007, 13:09:03
Lo que deseas son ventanas de forma irregular, para ello:

Colocas un TImage alineado alclient en la ventana, asignas la imagen y asignas su propiedad Transparent a True.

Ahora las propiedades del Form:
- Color := clgreen; (color de fondo del Form)
- TransparentColorValue := clgreen;
- Transparent := true;

Con eso al ejecutar, delphi hará transparente todo lo que sea de color verde. Puesto que el fondo de la ventana es verde, hará transparente toda la ventana y se verá solo el TImage.

Es conveniente asignar un color que no tenga la propia imagen, de lo contrario pueden salir huecos transparentes, (agujeros en la imagen).

Si no quieres la barra de título, pues también le quitas los BordersIcon borderStyle en bsFixed, etc.

No olvides poner un boton para cerrar la ventana ;) :D

Quizás te queden algunos pixeles en los bordes de color verde (el usado como transparente), quizás usando el color negro quede mejor.

Saludos

tazzmk
06-10-2007, 18:08:28
Gracias Lepe, saludos

lo hice y funciona perfectamente

tengo una duda con un detalle: cuando queda todo listo el formulario queda fijo y no se puede mover con el mouse, abra que darle algun envento a la imagen para que se puede mover con el mouse?

se puede hacer eso automaticamente en la barra , ver_barra (http://s1.subirimagenes.com/imagenes/previo/thump_15004832007-10-06_121823.gif)
pero como se le da estilo de ninguno borde al formulario se pierde esta, por lo tanto hay que darle a la imagen que se ha creado abajo.

ejemplo: click izquierdo sobre el formulario irregular y mantener el click izquierdo luego mover por la pantalla. saludos

Delphius
06-10-2007, 20:16:07
Hola tazzmk,
Puede que interese el truco 27 (http://www.q3.nu/trucomania/truco.cgi?27&esp) de trucomanía: "Hacer una form sin borde pero que se pueda mover"

Recuerdo además que se ha hecho antes tu pregunta... lo de mover el form haciendo manteniendo el clik en una imagen... pero no lo encuentro todavía. He encontrado algo similar (http://www.clubdelphi.com/foros/showthread.php?t=10936&highlight=arrastrar+panel)(mediante un panel) No es lo que buscas, pero una idea te puede dar...

En fin solo se trata de interceptar las Eventos OnXXX adecuados del TImage y jugar con ellos... Aunque hay otras opciones (mediante API) Recuerdo haber practicado con esto... pero no ubico el hilo.

Otra opción (que es sin tener ningún control activo) para mover el form es esta (http://www.clubdelphi.com/foros/showthread.php?t=22049&highlight=mover+form).

Si haces una mejor búsqueda que yo puede que ubiques el hilo.

Por otro lado, viendo que estás posteando dudas con respecto a la interfaz, hay componentes del tipo Skin que son bárbaro para estas cosas... yo he probado algunos aunque en versiones demos. Es más, algunos componentes vienen con un Engine para generar Skins. Los hay de pago y gratuitos. Aqui (http://www.torry.net)puedes encontrar unos tantos.

Saludos,

tazzmk
06-10-2007, 20:52:19
Muchas gracias nuevamente Delphius

ya lo hice y funciona muy bien, estoy muy agradecido

Saludos

Alfonsoft
07-10-2007, 21:49:18
Muchas Gracias!

Funciona a la perfección para lo que quería.

Saludos,