Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2013
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Como combinar transparencias con efectos opacos ?

Hola a todos,

Agradecerìa si me pudieran dar una ayuda con el siguiente problema :

Tengo una imagen de fondo sobre un TImage. Necesito colocar un panel en el centro que contendrá varios controles. Este panel ocupa una pequeña región de la imagen de fondo. Necesito que el panel sea transparente; pero, que el área transparente quede opaca.

Ya modifiqué el componente TPanel para que sea transparente. Eso me funciona bien. También encontré un método para hacer una imagen opaca y me funciona bien; así que mi idea para lograr el efecto requerido ha sido la siguiente :

Generar una área opaca en la imagen de fondo usando la posición Left,Top del panel y su dimensiones (Width, Height). Eso lo implemento en el Resize para restaurar el área en cada resize antes de posicionar el TPanel e inmediatamente opacar la nueva área.

Ahí es donde tengo un problema porque el área opaca no coincide con el Panel. Verticalmente si es más o menos la misma (tanto en su posición Top como en su altura); pero, no coincide. Horizontalmente es también más o menos el mismo ancho; pero, la posición izquierda es mucho antes que la del panel.

Tal parece que por debajo hay un manejo a escala de coordenadas (un poco raro porque está muy desfasado a la izquierda, no parece escala natural). Debido a eso, las propiedades Left, Top, Width y Height del Panel no corresponden exactamente a un rectángulo definido así en la imagen de fondo.

Alguna idea de como solucionar este impasse ?
Responder Con Cita
  #2  
Antiguo 10-04-2013
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Veo una pequeña contradicción:
Cita:
Empezado por rolandoj Ver Mensaje
Necesito que el panel sea transparente; pero, que el área transparente quede opaca.
Es imposible que un área transparénte quede opaca. O eso, o es que he saltado de dimensión espaciotemporal y no me he enterado.

De todas formas, y volviendo a tu pregunta, ¿has probado las propiedades Anchor?
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 10-04-2013
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Aclaración

Hola Ñuño,

Muchas gracias por contestar.

Disculpa. Ciertamente las palabras a veces pueden significar una cosa para unos y otra para otros.

La frase "Necesito que el panel sea transparente; pero, que el área transparente quede opaca." para mi está bien porque un área la entiendo como única; aún cuando sobre la misma existan varias capas de imágenes superpuestas. Así, cuando hablo de el "área transparente" para mi estoy hablando del área que está delimitada por los efectos de la transparencia, y es algo que entiendo implícito en la frase. Por lo que veo, tú consideras que eso no se entiende implícitamente sino que se debe indicar explícitamente.

Para claridad, lo que estoy diciendo es esto :

1. Imaginemos una imagen con un ancho de 1000 y un alto de 600
2. En esa imagen pensemos en un área centrada de 400 por 300
3. Esa área quedaría entonces con Left 300 y Top 150
4. Sobre esa área apliquemos un efecto opaco.
5. Ahora, tomemos un Panel de 400 por 300 y ubiquemoslo exactamente encima del área
6. Ese panel hagamoslo transparente (eso debe hacer que se vea el ópaco aplicado abajo)
7. Finalmente, sobre el mismo panel se colocan otros controles.

Ese es el efecto que necesito y que más o menos he logrado.

Ahora, el problema no son los Anchor porque lo que se descuadra no es el panel (que centra bien) sino la capa de opaco; es decir, aún cuando estoy colocandole, a la rutina que genera el opaco, directamente el tamaño y las coordenadas de Left-Top del panel ya centrado (verificado con depurador e incluso con ShowMessage) sigue apareciendo notablemente desfasada respecto a la posición correcta.

Para mi, el problema debe ser algún tipo de conversión de sistema de coordenadas que hay que aplicar; pero, no se como se aplica. Lo que me imagino es que de alguna forma estoy trabajando sobre las dimensiones originales de la imagen de fondo, y que el Strech a True que uso para ajustar esa imagen es el que está deformando la situación. Tengo el día ocupado; pero, en cuanto pueda voy a trabajar esa idea.

Alguna otra idea ?

Saludos
Responder Con Cita
  #4  
Antiguo 10-04-2013
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por rolandoj Ver Mensaje
Lo que me imagino es que de alguna forma estoy trabajando sobre las dimensiones originales de la imagen de fondo, y que el Strech a True que uso para ajustar esa imagen es el que está deformando la situación.
Strech es precisamente lo que debe estar dandote el problema. Aunque en un principio quedé con la misma duda de Ñuño. Supongo que debe ser algun efecto o textura la que estás aplicando a la imagen en la región dónde debe aparecer el TPanel. Si es así, no sería mejor colocar en el TPanel la textura?

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #5  
Antiguo 10-04-2013
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Es una idea; pero ...

Cita:
Empezado por Chris Ver Mensaje
Strech es precisamente lo que debe estar dandote el problema. Aunque en un principio quedé con la misma duda de Ñuño. Supongo que debe ser algun efecto o textura la que estás aplicando a la imagen en la región dónde debe aparecer el TPanel. Si es así, no sería mejor colocar en el TPanel la textura?

Saludos!
Hola Chris,

Gracias por el aporte.

Yo también tuve esa idea al principio; pero, no veo como hacerlo porque la transparencia y el opaco se manejan con técnicas separadas, y además entiendo que hay varias alternativas para implementarlas.

Tendría que empezar por explicarles los mètodos que estoy usando para lograr esos efectos, los cuales,a simple vista me parecen incompatibles y por lo que dijo Ñuño, parece que no se puede lograr el efecto en una sola capa de imagen.

Creo que debe ser más simple el ajustar el sistema de coordanadas para soportar el efecto del Strech; pero, habría que verlo.

Muchos saludos
Responder Con Cita
  #6  
Antiguo 19-08-2014
nicolasjavier nicolasjavier is offline
Miembro
NULL
 
Registrado: abr 2014
Ubicación: Bahía Blanca
Posts: 19
Poder: 0
nicolasjavier Va por buen camino
Hola, me podrías decir como se hace que el Tpanel sea transparente???

Gracias!!
Responder Con Cita
  #7  
Antiguo 19-08-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, haz una búsqueda en los foros y si no encuentras la respuesta, crea un nuevo hilo con tu pregunta.
No olvides la guía de estilo, gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como implementar efectos 3D en aplicaciones de formas mamcx Gráficos 2 07-04-2008 15:49:52
Como combinar celdas de excel desde jakarta poi Arcioneo JAVA 2 03-04-2007 17:47:05
Crear Efectos como en Media Player jorllazo Gráficos 1 21-10-2006 14:14:18
Como crear efectos de nieve Emiliano Blasco Gráficos 0 02-12-2004 02:40:48
Como puede combinar dos QRDBText subzero Impresión 8 03-02-2004 09:26:23


La franja horaria es GMT +2. Ahora son las 04:00:58.


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
Copyright 1996-2007 Club Delphi