Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Imágenes sin fondo (https://www.clubdelphi.com/foros/showthread.php?t=48762)

Alfonsoft 03-10-2007 16:10:01

Imágenes sin fondo
 
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:

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

transparencia con formulario
 
hola como se puede hacer este efecto

imagen_01

imagen_02

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

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

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

transparent

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
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 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 (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.

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 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,


La franja horaria es GMT +2. Ahora son las 22:13:42.

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