![]() |
Splash Screen - Con transparencias (tipo PhotoShop, etc...)
Seguro que alguien se ha fijado que muchos programas, sus Splash Screen tienen sombras, transparencias, etc... como por ejemplo el PhotoShop, el CodeBlocks, etc...
Así pues, hoy por inspiración divina, me ha venido una imagen clara y facilísima de como hacerlo xD La idea del truco es muy simple: Capturar la imagen del escritorio en el momento de mostrar el Splash, y encima de ésta, mostrar nuestra imagen. Para la receta necesitamos: El componente TPngImage (http://pngdelphi.sourceforge.net/). Cualquier otro componente que realice lo mismo que este, es valido. Empecemos pues: 1- Creamos la imagen del SplashScreen. 2- Creamos un nuevo formulario (frmSplashScreen) 3- Configuramos el formulario: BorderStyle:=bsNone; y Position:=poScreenCenter; las dimensiones del form (width y height) deben ser iguales a las de la imagen. 4- Agregamos un "TImage" (imgDeskTop) que nos servirá para mostrar la captura de pantalla, y ponemos la propiedad: Center:=True; 5- Agregamos otro "TImage" (imgSplashScreen) para mostrar la imagen del Splash Screen. 6- Ahora, sólo nos queda el código para realizar el truco:
El efecto es realmente bueno, pero tiene los mismos fallos que cualquier otro Splash Screen de este tipo: "Si se cambia el fondo mientras esta el Splash Screen abierto, este no se actualiza...". Aqui una captura de pantalla del truco: http://www.upload-images.net/imagen/fa2a21e731.png También he subido las fuentes (y un ejecutable) del truco en el Directorio del ClubDelphi, para quién lo quiera probar: http://www.terawiki.com/clubdelphi/archivos/Delphi-Win32/Ejemplos/SplashScreen_SplashScreen_con_transparencias_PNG.zip Saludos. |
La alternativa más usual y sencilla que se utiliza es poner el Form contenedor con BorderStyle:=bsNone, TransparentColorValue:=csXXX en algún color no utilizado en la imagen y TransparentColor=true
Saludos. |
pcpower pero lo que tú propones, no soporta transparencias de varios niveles (para sombras, efecto de cristal, etc...), sólo: Transparente o no transparente.
Si te fijas en el ejemplo o en la imagen de muestra, veras a lo que me refiero. Saludos. |
desde hace tiempo utilizo un truco parecido con TPNGImage, pero lo que hago de un forma un poco más simple y rápida.
esa es la idea, no sé si el código está bien escrito porque lo hago de memoria, pero por ahí va. |
Tienes razón xEsk. Es un efecto bastante màs complejo. Se me ocurre también que se podrían practicar efectos extraños sobre la pantalla capturada, como o un dimmeado, o borrarla como un pizarrón,o jugar con los ìconos obteniedo las posiciones en la pantalla de alguna manera, etc... Yo, de todos modos, si veo un programa que arranca así, tiro del cable de power de la PC inmediatamente!!! jeje
Saludos. |
Buenas, el otro dia instale el windows live y su splashscreen me gusto, usa transparencia y por lo que eh podido observar si mueves la ventana de atras, refresca el splashscreen, intentare comprovar con el api spy haver si esta capturando pantalla todo el tiempo o bien es un form con el blend activado, see you
|
neuronic si descubres algo, sería interesante saberlo.
Saludos |
si mientras se van creando las forms (Application.CreateForm...) vas poniendo update no se redibuja?
|
el splash screen de windows live, me parece que utiliza blend al form
|
Al respecto, estuve leyendo un excelente artículo la semana pasada para conseguir este efecto. Mediante la llamada a la función API, UpdateLayeredWindow.
Pros: * Es súper sencillo de implementar, * Se encarga de dibujar automáticamente el canvas del form cuando se mueve una ventana o se cambia el Z-Order de éstas. * Es relativamente rápido de implementar. * Se pueden conseguir excelentes efectos incluso con BMP de 32bits. Contras: * Las ventanas que hagan uso de esta API, no pueden deberían de contener controles dentro de ellas (pues no se dibujan). * Disponible solamente en win2k, XP y posteriores. Aquí les dejo el enlace para que lo chequeen (en inglés). http://melander.dk/articles/alphasplash/ Este es un artículo bien completo, incluso dedica casi la mitad de éste a explicarnos como hacer BMPs de 32bits en Photoshop. Saludos a todos los del club. Bye. |
D&W muy interesante, gracias.
|
Una pregunta. ¿Y si se crea una ventana sin borde con el fondo totalmente transparente y se le dibuja encima la imagen del "splash"? Se me acaba de ocurrir.
|
Muy buenas aportaciones, lo que mas me agrada es el entusiasmo con que se comparten opiniones e ideas, son grandes.
Gracias |
La franja horaria es GMT +2. Ahora son las 15:30:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi