FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Barra de título transparente en los formularios
Hola amigos.
Todos sabemos que en Windows 7 los formularios y/o ventanas por defecto aparecen con su barra de título transparente, lo cual me parece muy bonito y pues actualmente estoy desarrolando una aplicacion que va a funcionar tanto en Window XP como Windows 7 y lo que deseo es hacer que SOLO la barra de títulos de los formularios de mi aplicacion sea transparente cuando se ejecuten en cualquier Windows. Sé que puedo utilizar las propiedades AlphaBlend y AlphaBlendValue del formulario pero no me sirve ya que tales propiedades hacen que todo el formulario se haga transparente , y yo solo quiero hacer transparente la barra de título.He estado buscando y no he encontrado casi nada al respecto. Existira alguna API que me ayude para tal menester y que sirva tanto para Windows XP o superior? Desde ya... se le agradece cualquier comentario o sugerencia... Saludos... POSDATA: Estoy trabajando con Delphi XE y Windows 7.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#2
|
||||
|
||||
Hola mi amigo, como siempre, un gran gusto verte por aquí
He estado buscando y parece que es más fácil hacer transparente una chapa de zinc que una barra de título en XP... Pero, encontré este artículo (en realidad un tutorial) que quizá ya hayas leido: Creating Forms with Custom Title Bars, pero si no, tal vez te pueda dar una idea de como lograrlo. Lo siento pero no encontré nada más específico sobre lo que buscas... Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Y, digo yo, ¿no sería mejor dejar el estilo de la ventana acorde al sistema operativo?
// Saludos |
#4
|
||||
|
||||
Cita:
Muchas gracias por el enlace le voy a hechar una buena leida y ver que se puede hacer. Cita:
Pues en principio eso es lo que pensé pero aveces se le meten ciertas cosas cosas a uno y pues quiere a veces darle un toque diferente a sus aplicaciones, vamos a ver que tan complicado es la cosa, y si se pone dura pues vamos a tener que dejarlo así no más, pero como bien dice el dicho:"Uno no pierde nada con intentarlo". De todas formas si alguien puede sugerirme o guiarme le seré muy agradecido. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#5
|
||||
|
||||
Tiempo amigo mío (en caso de que no funcione el intento), que es lo más valioso
__________________
eLcHiCoTeMiDo - Rompecorazones profesional Yo no soy presumido; ¿Pero de qué sirve mi humilde opinión contra la de los espejos? Salva a un nylon, usa prendas de piel de foca |
#6
|
||||
|
||||
#7
|
||||
|
||||
Cita:
Cita:
Ya me extrañaba no tener una respuestas tuya , sé muy bien que dominas con gran maestría la programacion con las API, por eso siempre que posteas algo en cualquier foro, estoy muy atento atus respuestas, pues siempre estoy aprendiendo algo nuevo tuyo.Vamos a hecharle una muy buena leida a ese link y ver si puedo hechar andar esto; aunque para eso creo que voy estar haciendo algunas preguntas si me topo con algo que no entienda. Saludos... y gracias....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#8
|
||||
|
||||
El artículo que propuse muestra formularios muy vistosos pero de bajo rendimiento gráfico. Usa ventanas estilo WS_EX_LAYERED para conseguir semitransparencias y la API SetLayeredWindowAttributes (lo mismo que delphi usando AlphaBlend). También realiza un ejemplo con la API UpdateLayeredWindow, engorrosa de usar porque nos tenemos que hacer cargo de pintar todos los controles, pues los mensajes WM_PAINT dejan de gestionarse.
He preparado una "chapucilla" como ejemplo en delphi, sencillo y con mejor rendimiento gráfico (creo ) que sólo pretende colocar la barra del Caption y el brode de la ventana semitransparentes. El truco es poner el Form como semitransparente con la propiedad AlphaBlend y su valor. Luego Creamos un segundo Form en tiempo de ejecución sin borde, sin Caption y opaco, que colocamos enzima, ocupando todo el área cliente. Posteriormente cambiamos el Parent de todos los controles a este nuevo Form. Para que esto funcione debemos reescribir parte de la función de tratamiento de mensajes del Form original. El efecto resultante es lo que deseaba realizar rgstuamigo. Conseguimos hacer transparente la barra del título y la chapa de zinc. El código que realiza el efecto es el siguiente:
Aquí tenéis el ejemplo completo. Saludos. Última edición por ecfisa fecha: 09-03-2013 a las 00:33:29. Razón: Actualizar enlace FTP |
#9
|
||||
|
||||
Cita:
Muy ingenioso. // Saludos |
#10
|
||||
|
||||
Eres un genio Escafandra!
Iba a sugerir lo mismo porque hace un par de meses estuve intentando desarrollar algo similar. Pero nunca logré quitar un pequeño flick que aparecía al momento de abrir la ventana por primera vez. En mi caso me inspiré analizando el código de Chromiun. Pero ahora me inspiraré de tí, espero que no te molestes Saludos, Chris! |
#11
|
||||
|
||||
Cita:
Saludos, Chris |
#12
|
||||
|
||||
Cita:
Cita:
Saludos. |
#13
|
||||
|
||||
Cita:
Pues al ver tu código me puesto a trabajar de inmediato para transformar tu código y hacerlo un componente, aunque me ha costado bastante por que no tengo mucha experiencia en creacion de componentes como ustedes, pues he conseguido hacer una version estable: Aquí está el código de dicho componente: Desde luego se lo puede mejorar, por ejemplo: Cita:
Estaré atento a las criticas y/o sugerencias sobre éste componente. Y espero que le sirva a más de uno. Saludos... EDITO: Adjunto el archivo del componente.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 30-09-2011 a las 21:53:16. |
#14
|
||||
|
||||
Cita:
Te ha quedado muy bien. Lo he probado deprisa y me ha dado algún error que me ha colgado delphi. No he detectado el por qué, lo miraré mas despacio cuando tenga un rato libre. Una cosa que debes hacer es proporcionarle un icono para que aparezca mas profesional en la barra de controles de delphi. Me agrada que mi código te sirva de ayuda e inspiración así como que responda a tus propósitos en algo que a priori parecía difícil. Seguro que ayuda a mas de uno. Saludos. |
#15
|
||||
|
||||
Finalmente he conseguido un ratito libre y he realizado alguna modificación en el componente sin perder la esencia del original. El error estaba en cuando se permitía el Hook al WinProc del Owner. No se debe permitir en fase de diseño...
Muestro aquí los pequeños cambios que realicé:
Saludos. |
#16
|
||||
|
||||
Muy bien por la correccion, escafandra... a la verdad, como mencioné en mi primer post, estoy trabajando con Delphi XE y Windows 7 y no me ha dado errores por ese lado.
Bueno... viendo y probando dicho compenente me he dado cuenta que necesitamos hacerle más corrección por ejemplo: El formulario que hace de cortina, debería copiar ciertas propiedades del formulario original tales como:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#17
|
||||
|
||||
Tienes toda la razón . También habría que controlar el cursor.
Mira estos cambios:
Saludos. |
#18
|
||||
|
||||
Recuperando el tema, pero al reves
Hola compañeros.
Recupero este tema para que no digais que no he buscado Creo que yo necesito los mismo, pero al reves, me explico (y pido ayuda porque no consigo el efecto que quiero), que el formulario principal (o la imagen que contiene alineada al client, un plano topografico, por ejemplo) no sea trasparente pero los formularios hijo si. Sobre ese plano dibujo una casitas que muestran la actividad remota, ahora esas casitas (formularios creados en tiempo de ejecucion) no son trasparentes y tapan el plano, si son muchas, el plano del fondo ni se ve y ademas la casita se puede agrandar (tiene 2 tamaños en funcion de la cantidad de informacion a mostar). Si creo el form hijo y le asigno el parent del formulario padre, las casitas se mueven con el plano pero cojen la propiedad alphablendvalue del padre, osea o todos trasparentes o todos opacos. Si creo el form hijo y no le asigno el parent del formulario padre, las casitas se quedan en la posicion de la pantalla (que es el parent) donde estan y el plano se va solo, eso si, las casitas son trasparentes. ejemplo del codigo
¿Alguna sugerencia (de escafandra, por ejemplo? Gracias aunque sea por leer. |
#19
|
||||
|
||||
Hombre, si no tratas de dar una solución al tema iniciado, entonces deberías haber creado otro hilo nuevo
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
tildes en la barra de título | tino00 | API de Windows | 0 | 06-12-2008 19:13:34 |
Popup de la barra de titulo | _cero_ | C++ Builder | 2 | 05-06-2008 18:02:21 |
Tamaño del TITULO de FORMULARIOS... | Rogersito Plus | OOP | 2 | 18-10-2006 15:38:35 |
URL en la barra de titulo??? | Jonnathan | Varios | 7 | 30-01-2006 20:43:24 |
Label en la Barra de Titulo... | nicolasdom | Varios | 1 | 04-10-2004 23:46:31 |
|