FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Imagen encima de todo
Hola, a ver si alguien me puede ayudar. Trabajo sobre Delphi 6.
Tengo un formulario lleno de componentes (Paneles, PageControls, Grids, Edits, etc...) y ahora mi jefe quiere que aparezca encima de todo una imagen con transparencias, tipo cuño. És decir que se vea lo que hay debajo a través de las transparencias de la imagen. Mi problema es situar esta imagen sobre el resto de componentes, ya que poniendola colgando del formulario y haciendo un bringtofront se queda detrás de todo. He probado a ponerla en un panel, poniendo éste sobre el resto de componentes y poniéndole el color que tiene el formulario en TransparentColor, pero no funciona. A ver que se os ocurre. Muchas Gracias Última edición por orodruin fecha: 11-11-2005 a las 08:22:08. |
#2
|
|||
|
|||
Porqué no usar regiones
Yo que vos pondría el gráfico sobre un panel, crearía una región según este gráfico y se lo asignaría al panel con SetWindowRgn(Panel1.Handle, PanelRegion,False).
Si no se entiende o no sabés como hacer algún paso, avisame que, abundo con algo de código. |
#3
|
||||
|
||||
Me he visto tentado a poner este trozo de código aquí, con él puedo pintar una imágen en cualquir parte de la pantalla encima de cualquier cosa.
No creo que sea la solución pero quizas te de una idea para que sigas investigando, el mayor problema que le veo es que me trabaja bien desde el clic de un boton por ejemplo, pero no he logrado hacer que lo haga automáticamente en un evento del Form. Claro esta sugerencia es válida si no vas a optar por lo comentado anteriormente, que posiblemente si sea una solución completa, dependiendo de lo complicada que pueda ser la imágen para formar su region correspondiente. Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#4
|
|||
|
|||
código
No importa demasiado la complejidad excepto que te cree conflictos emocionales torturar un poco al windows . Aunque sí utiliza recursos, no me parece que sea demasiado para los PC de hoy. Yo he combinado cientos de transparencias de hasta 1 pixel (para hacer sombras sobre lo de atrás).
Por ejemplo, y ya que estamos y hablando de regiones y transparencias, ¿vieron que espectacular el "spash screen" del acrobat reader 6.0? Ese es un ejemplo de lo astutamente que puede diseñarse un gráfico con regiones transparentes. Bueno, te incluyo algo de código útil para generar una región a partir de cualquier gráfico: Podes sacar la variable de Transparent color y pasarlo en el enunciado de la función si querés que no sea necesariamente el pixel de abajo a la izquierda.
Deberías definirte una variable (Xej PanelRegion) de tipo THandle y luego de: utilizar la función SetWindowRgn para el panel. |
#5
|
|||
|
|||
Gracias
Muchas gracias por las respuestas. He encontrado un componente que es un panel transparente, pero no acaba de pintar bien sobre los dbgrids. Voy a ver si pruebo vuestras soluciones. Si tuviera algún problema os digo algo.
Gracias de nuevo. |
|
|
|